GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi xargs -L produit-il le bon format, alors que xargs -n ne le fait pas ?

-L divise par lignes; echo ne sépare pas sa sortie par des lignes mais par des espaces, donc un seul ls -l est exécuté et qui formate toutes les colonnes en tant que groupe.

-n divise par paramètres ; en l'absence de -L ou -0 , le séparateur est un espace (éventuellement modifié par des guillemets), donc chaque nom de fichier a son propre ls -l exécuter et il n'y a aucun moyen pour les exécutions indépendantes de coordonner les largeurs de colonne.


La norme POSIX impose :

-L numéro

L'utilitaire doit être exécuté pour chaque number non vide lignes d'arguments de l'entrée standard. La dernière invocation de l'utilité doit être avec moins de lignes d'arguments s'il reste moins de nombre. Une ligne est considéré comme se terminant par le premier sauf si le dernier caractère de la ligne est un <blank>; un <blank> à la fin signale la continuation vers la prochaine ligne non vide, inclus.

-n numéro

Invoquer l'utilitaire en utilisant autant d'arguments d'entrée standard que possible, jusqu'à nombre (un entier décimal positif) arguments maximum.

(C'est nous qui soulignons.) Depuis echo * produit une seule ligne, xargs -L 1 envoie simplement tous les noms de fichiers à ls immédiatement, et alors seulement ls alignez bien les colonnes.

(En d'autres termes, votre première commande équivaut à ls -l index.html* , sauf qu'il ne gère pas correctement les noms de fichiers contenant des espaces.)


Linux
  1. Pourquoi 'sshpass' n'est pas le bon moyen d'automatiser les transferts de fichiers sous Linux

  2. Pourquoi l'expression régulière fonctionne-t-elle dans X mais pas dans Y ?

  3. Pourquoi l'utilisateur racine a-t-il besoin d'une autorisation Sudo ?

  4. Pourquoi le PC se fige-t-il pendant que je copie un fichier sur une clé USB ?

  5. Pourquoi `md5sum` ne donne-t-il pas le même hachage qu'Internet ?

Pourquoi le fichier de traduction Bash ne contient-il pas tous les textes d'erreur ?

Pourquoi Htop Meter affiche-t-il> 90 % alors que le tableau est à 0,0 % ?

Pourquoi le préprocesseur C interprète-t-il le mot linux comme la constante 1 ?

Pourquoi rsync sur SSH me donne-t-il 10 fois le débit de SCP ?

BCRYPT - Pourquoi les distributions Linux ne l'utilisent-elles pas par défaut ?

Pourquoi l'utilisateur 'bin' a-t-il besoin d'un shell de connexion ?