J'ai récemment copié et déplacé un grand nombre de fichiers (~ 400 000). Je sais qu'il y a des limitations sur le nombre d'arguments qui peuvent être développés sur la ligne de commande Bash, donc j'ai utilisé xargs pour limiter les nombres produits.Nombre maximal d'arguments Bash! = Nombre max arguments cp?
Par curiosité, je me suis demandé ce que le nombre maximum d'arguments que je pouvais utiliser était, et j'ai trouvé this post en disant qu'il était dépendant du système, et que je pouvais exécuter cette commande pour savoir:
$ getconf ARG_MAX
à ma grande surprise, le anwser je suis retourné était:
2621440
Un peu plus de 2,6 millions . Comme je l'ai dit, le nombre de fichiers que je manipule est bien inférieur à celui-ci - environ 400k. Je dois absolument utiliser la méthode xargs
pour déplacer et copier ces fichiers, car j'ai essayé d'utiliser un mv * ...
normal ou un cp * ...
et une erreur "Liste d'arguments trop longue". Les commandes mv
et cp
ont donc leur propre limite fixe sur le nombre d'arguments que je peux utiliser (je n'ai rien trouvé dans leurs pages man), ou est-ce que quelque chose me manque?
Pourquoi devez-vous spécifier chaque fichier? Tu ne peux pas juste spécifier le répertoire dans lequel ils sont ou quelque chose comme ça? –
@Christoffer Je ne copie pas simplement un répertoire d'un endroit à un autre, je copie des fichiers spécifiques, je renomme des paquets de fichiers, je déplace certains fichiers d'un endroit à un autre. Je n'ai aucun problème à effectuer ces opérations. J'étais juste curieux de savoir quelles étaient les limitations spécifiques des commandes 'cp' et' mv'. –