Quelle est la longueur maximale d'une ligne de commande sous Mac OS X?

11

Je génère des modèles dans Ruby on Rails, et certaines de ces tables ont énormément de colonnes. Quelle est la durée maximale d'une commande sous Mac OS X?

DGM
la source

Réponses:

15

La limite n'est pas dans bash mais dans votre système d'exploitation. Il est défini par la valeur de ARG_MAXdans votre système d'exploitation limits.h. Vous pouvez obtenir la valeur en exécutant getconf ARG_MAX. Sur ma machine OSX 10.5 (et la plupart des autres systèmes BSD), c'est 262144. Vous pouvez en savoir plus sur cette limite ici .

Kamil Kisiel
la source
1
Sur Solaris 10, c'est 1048320 - les deux sont si gros qu'ils enlèvent l'esprit que quelqu'un pourrait en manquer.
Jonathan Leffler
Excellent. Je suppose que j'étais encore parti. lol
DGM
1
À partir de macOS 10.12, la limite est toujours de 262 144 (256 Ko). Notez que la limite s'applique uniquement lors de l'appel à des utilitaires externes , pas aux commandes internes du shell. Comparer echo "$(printf "%$(getconf ARG_MAX)s")"avec/bin/echo "$(printf "%$(getconf ARG_MAX)s")"
mklement
High Sierra (10.13.1) ici, toujours 262144.
Siu Ching Pong -Asuka Kenji-
@JonathanLeffler La recherche dans quelques milliers de fichiers rendra rapidement ce nombre très petit.
Plus clair
1

Cela dépend du shell, mais la dernière fois que j'ai exécuté un script de configuration à l'aide de zsh sur 10,6, c'était 65535 caractères.

Amok
la source