xargs è un comando Unix che può essere utilizzato per creare ed eseguire comandi da input standard.
Importanza:
Alcuni comandi come grep possono accettare input come parametri, ma alcuni comandi accettano argomenti, questo è il punto in cui xargs è entrato in scena.
Sintassi del comando `xargs` in Linux
xargs [options] [command]>
Opzioni disponibili nel comando 'xargs' in Linux
| Opzioni | Descrizione |
|---|---|
| -0 | gli elementi di input terminano con un carattere null anziché con spazi bianchi |
| -un file | leggere elementi dal file invece che dall'input standard |
| –delimitatore = dividere | gli elementi di input terminano con un carattere speciale |
| -E eof-str | imposta la fine della stringa del file su eof-str |
| -Sostituisco-str | sostituire le occorrenze di replace-str negli argomenti iniziali con nomi letti dallo standard input |
| -L linee massime | utilizzare al massimo righe di input non vuote per riga di comando. |
| -P | chiedere all'utente se eseguire ciascuna riga di comando e leggere una riga dal terminale. |
| -R | Se lo standard input non contiene spazi non vuoti, non eseguire il comando |
| -X | uscire se la dimensione viene superata. |
| -aiuto | stampa il riepilogo delle opzioni su xargs ed esce |
| -versione | stampa la versione n. di xargs ed esci |
Esempio :

esempio di xargs
Di seguito è riportato il programma C, che legge un file di testo test.txt e quindi utilizza l'output di questo programma come input per il comando touch. contenuto del file di testo test.txt
file1 file2 file3 file4>
C
// C program to read contents of file> #include> // Driver Code> int> main(){> >int> c;> >FILE> *file;> >// open file test.txt> >file =>fopen>('test.txt', 'r');> >if> (file) {> >// read file line-by-line until> >// end of file> >while> ((c =>getc>(file)) != EOF)> >putchar>(c);> >fclose>(file);> >}> >return> 0;> }> |
>
>
Produzione :
file1 file2 file3 file4>
Ora usa l'output di ./a.out come input per il comando touch

Esempio xargs con touch
Utilizzo dei comandi con opzioni:
xargs --version>
Stampa il numero di versione del comando xargs e poi esce.
Produzione :
df.loc
xargs (GNU findutils) 4.7.0-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.>
xargs -a test.txt>
Mostrerà il contenuto del file
file1 file2 file3 file4>
xargs -p -a test.txt>
L'opzione -p richiede conferma prima di eseguire ciascuna riga di comando. Esegue la riga di comando solo se la risposta inizia con 'y' o 'Y' Output:
# xargs -p -a test.txt echo file1 file2 file3 file4 ?...y file1 file2 file3 file4 # xargs -p -a test.txt echo file1 file2 file3 file4 ?...n>
xargs -r -a test.txt>
Ora, supponiamo che il file test.txt sia vuoto e che venga eseguito il comando precedente, l'opzione -r garantisce che se l'input standard è vuoto, il comando non venga eseguito, quindi il comando precedente non produrrà alcun output, ma, se viene eseguito il comando precedente senza l'opzione -r, produrrà una riga vuota come output. Vedi l'immagine qui sotto come esempio:

xargs con l'opzione -r