Ricerca nel sito web

12 esempi pratici di comando Linux Xargs per principianti


Xargs è un ottimo comando che legge flussi di dati dall'input standard, quindi genera ed esegue righe di comando; il che significa che può prendere l'output di un comando e passarlo come argomento di un altro comando. Se non viene specificato alcun comando, xargs esegue echo per impostazione predefinita. Molti lo istruiscono anche a leggere i dati da un file invece che da stdin.

Esistono diversi modi in cui xargs è utile nell'uso quotidiano della riga di comando. In questo articolo spiegheremo 12 esempi pratici di comandi xargs Linux per principianti.

1. Il primo esempio mostra come trovare tutte le immagini .png e archiviarle utilizzando l'utilità tar come segue.

Qui, il comando di azione -print0 abilita la stampa del percorso completo del file sullo standard output, seguito da un carattere null e il flag -0 xargs gestisce efficacemente lo spazio nei nomi dei file.

find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. Puoi anche convertire l'output su più righe dal comando ls in una riga singola utilizzando xargs come segue.

ls -1 Pictures/tecmint/
ls -1 Pictures/tecmint/ | xargs

3. Per generare un elenco compatto di tutti gli account utente Linux sul sistema, utilizzare il seguente comando.

cut -d: -f1 < /etc/passwd | sort | xargs

4. Supponendo che tu abbia un elenco di file e desideri conoscere il numero di righe/parole/caratteri in ciascun file nell'elenco, puoi utilizzare il comando ls e xargs per questo scopo come segue.

ls *upload* | xargs wc

5. Xarags ti consente anche di trovare e rimuovere ricorsivamente una directory, ad esempio il seguente comando rimuoverà ricorsivamente DomTerm nella directory Download.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. Analogamente al comando precedente, puoi anche trovare tutti i file denominati net_stats nella directory corrente ed eliminarli.

find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. Successivamente, utilizza xargs per copiare un file in più directory contemporaneamente; in questo esempio stiamo provando a copiare il file.

echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. Puoi anche utilizzare il comando trova, xargs e i comandi rinomina insieme per rinominare tutti i file o le sottodirectory in una particolare directory in minuscolo come segue.

find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. Ecco un altro utile esempio di utilizzo di xargs, mostra come eliminare tutti i file all'interno di una directory tranne uno o pochi file con una determinata estensione.

find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. Come accennato in precedenza, puoi istruire xargs a leggere elementi da un file invece che dallo standard input utilizzando il flag -a come mostrato.

xargs -a rss_links.txt

11. Puoi abilitare la verbosità usando il flag -t, che dice a xargs di stampare la riga di comando sull'output dell'errore standard prima di eseguirlo.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. Per impostazione predefinita, xargs termina/delimita gli elementi utilizzando spazi vuoti, puoi utilizzare il flag -d per impostare il delimitatore che potrebbe essere un un singolo carattere, un carattere di escape in stile C come \n o un codice di escape ottale o esadecimale.

Inoltre, puoi anche chiedere all'utente se eseguire ciascuna riga di comando e leggere una riga dal terminale, utilizzando il flag -p come mostrato (digita semplicemente y per o n per no).

echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

Per ulteriori informazioni, leggi la pagina man di xargs.

man xargs 

Per ora è tutto! Xargs è una potente utility per creare una riga di comando; può aiutarti a passare l'output di un comando come argomento di un altro comando per l'elaborazione. In questo articolo abbiamo spiegato 12 esempi pratici di comandi xargs per principianti. Condividi i tuoi pensieri o domande con noi tramite il modulo di feedback qui sotto.