Ricerca nel sito web

Comando xargs di Linux


Il comando xargs è uno strumento da riga di comando utilizzato per leggere i dati dall'input standard e successivamente esegue un comando basato sull'input standard. È uno strumento utile nella gestione dei file, soprattutto se utilizzato con altri comandi come mkdir, grep, rm ecc. In questo tutorial impareremo come utilizzare xargs su Linux.

Sintassi di base

La sintassi di base quando si utilizza il comando xargs è la seguente:

$ command1 | xargs command2

Per passare lo stdout a xargs, utilizziamo un simbolo pipe (|).

Xargs può anche essere utilizzato con diverse opzioni e, in tal caso, adotta la sintassi:

$ command1 | xargs [options] command2

Utilizzo di xargs con il comando find

Il comando Xargs è comunemente usato con il comando trova. Viene utilizzato per cercare file specifici ed eseguire ulteriori elaborazioni su tali file utilizzando xargs. La sintassi per combinare xargs con find è:

$ find [directory] -name "[search-term]" -type f | xargs [command]

Quando si utilizza xargs con find, non include i file che contengono caratteri speciali nei loro nomi. È consigliabile utilizzare l'opzione find -print0 per includere tali file.

Nell'esempio seguente, utilizzeremo il comando find per cercare tutti i file con estensione .txt e poi eliminarli. Elenchiamo innanzitutto utilizzando il comando ls.

$ ls

Ora invochiamo il comando find e il comando xargs per individuare tutti i file di testo (.txt) ed eliminarli.

$ find /home/james  -name "*.txt" -type f -print0 | xargs rm -f

Usare xargs con grep

Inoltre, il comando xargs può essere utilizzato con grep per cercare una stringa in un elenco di file specificati. Utilizzare la sintassi seguente:

$ find. -name 'search-term' | xargs grep 'string-to-find-in-files'

Nell'esempio seguente, abbiamo prima cercato i file con estensione .txt e poi li abbiamo reindirizzati a xargs, che ha quindi eseguito il comando grep. Possiamo osservare che ha cercato la stringa "campione".

Esegui più comandi con il comando Xargs

Per eseguire più comandi con xargs, utilizzare l'opzione -I. La sintassi utilizzata è:

[command] | xargs -I % sh -c '[command-1] %; [command-2] %'

Diamo un'occhiata all'esempio qui sotto; eseguiremo due comandi; per prima cosa creeremo tre file utilizzando il comando touch e poi li elencheremo utilizzando il comando ls.

Leggi elementi dal file

Xargs viene utilizzato per leggere l'input standard. Per leggere gli elementi in un file, utilizza il comando xargs insieme all'opzione -a.

$ xargs -a [filename]

Visualizza i comandi eseguiti da xargs

Per vedere i comandi eseguiti da xargs nell'output standard, utilizzare l'opzione -t. La sintassi è:

$ [command] | xargs -t [command]

Nell'esempio seguente, nota che xargs ha eseguito il comando touch sulla stringa fornita da un'eco.

Limita l'output per linea

Puoi controllare il numero di argomenti passati al comando xargs in un dato momento. Utilizza l'opzione -n per specificare il numero di argomenti a cui stai limitando xargs.

$ [command-providing-input] | xargs –n [number] [command]

Nell'esempio seguente, xargs divide la stringa dal comando echo in. in tre parti. Quindi esegue l'eco per ciascuna parte.

Rimuovi gli spazi vuoti nella stringa

xargs può essere utilizzato come strumento per rimuovere gli spazi vuoti da una stringa. Invia la stringa al comando xargs. Utilizzare la sintassi seguente:

$ echo "string" | xargs

Nell'esempio seguente, dopo l'esecuzione di xargs, il comando string viene stampato senza spazi prima e dopo le virgolette doppie

$ echo "  xargs command on Linux " | xargs

Elenca il numero di righe/parole/caratteri in ciascun file

xargs può essere utilizzato come strumento per visualizzare un elenco con il numero di righe, parole e caratteri nei file. Utilizzare il comando wc ( conteggio parole ) dopo xargs per visualizzare il conteggio di righe, parole e caratteri di file specifici

$ ls file | xargs wc

Nell'esempio seguente, abbiamo utilizzato wc per elencare il numero di caratteri nei file contenenti la stringa "file":

Specificare il delimitatore

Per modificare il delimitatore predefinito, utilizza l'opzione del comando -d seguita da un carattere che desideri utilizzare come nuovo delimitatore. La sintassi è mostrata di seguito:

$ [command-] | xargs -d [new-delimiter] | xargs [command]

Nell'immagine seguente, cambiamo il nostro delimitatore * e quindi applichiamo mkdir a ciascun comando.

Copia di file in più directory

Xargs può essere utilizzato per copiare file in diverse directory. Utilizzare la sintassi seguente:

$ echo [directory1] [directory2] | xargs -n 1 cp -v [file]

Conclusione

Xargs è una potente utility da riga di comando per l'uso quotidiano. Per informazioni più dettagliate, leggi la pagina man di xargs  LINK IPERTESTUALE "http://man7.org/linux/man-pages/man1/xargs.1.html".

Articoli correlati: