GNU/Linux >> Linux Esercitazione >  >> Linux

Perché xargs -L produce il formato corretto, mentre xargs -n no?

-L divide per linee; echo non separa il suo output da righe ma da spazi, quindi un singolo ls -l viene eseguito e formatta tutte le colonne come un gruppo.

-n divide per parametri; in assenza di -L o -0 , il separatore è uno spazio bianco (possibilmente modificato tra virgolette), quindi ogni nome file ottiene il proprio ls -l run e non c'è modo per le esecuzioni indipendenti di coordinare le larghezze delle colonne.


Lo standard POSIX impone:

-L numero

L'utilità deve essere eseguita per ogni number non vuoto linee di argomenti dallo standard input. L'ultima invocazione di utilità deve essere con meno righe di argomenti se rimane meno di numero. Una linea è considerato terminare con il primo a meno che l'ultimo carattere della riga non sia un <blank>; un <blank> finale segnala la continuazione alla prossima riga non vuota, inclusa.

-n numero

Richiama l'utilità utilizzando il maggior numero di argomenti di input standard possibile, fino a numero (un numero intero decimale positivo) numero massimo di argomenti.

(Il corsivo è aggiunto.) Poiché echo * produce una singola riga, xargs -L 1 invia semplicemente tutti i nomi dei file a ls subito, e solo allora sarà possibile ls allinea bene le colonne.

(In altre parole, il tuo primo comando equivale a ls -l index.html* , tranne per il fatto che non gestisce correttamente i nomi di file contenenti spazi vuoti.)


Linux
  1. Perché l'espressione regolare funziona in X ma non in Y?

  2. Perché l'utente root ha bisogno dell'autorizzazione Sudo?

  3. Perché il PC si blocca mentre sto copiando un file su una Pendrive?

  4. Perché nessuno usa la vera shell Bourne come /bin/sh?

  5. Perché il preprocessore C interpreta la parola linux come la costante 1?

Perché il misuratore Htop mostra>90% mentre la tabella è 0,0%?

Perché Atlantic.Net è la scelta giusta rispetto ad altri provider di servizi cloud? Parte 1 di 3

Perché rsync su SSH mi offre un throughput 10 volte superiore a quello di SCP?

BCRYPT - Perché le distribuzioni Linux non lo usano di default?

Perché l'utente "bin" ha bisogno di una shell di login?

Perché il bit setuid funziona in modo incoerente?