GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi xargs di Linux

Il comando xargs in Linux/UNIX legge gli elementi dallo standard input, delimitati da spazi o nuove righe, ed esegue il comando una o più volte con qualsiasi argomento iniziale.

Se non viene fornito alcun comando come argomento per xargs, il comando predefinito eseguito dallo strumento è un'eco.

Le righe vuote sullo standard input vengono ignorate. Gli elementi letti da xargs dallo standard input possono essere protetti con virgolette doppie o singole o una barra rovesciata.

Il comando xargs è estremamente potente, specialmente se combinato con comandi come grep o echo. In questo tutorial, tratteremo alcuni usi di base del comando xargs per iniziare con esso.

Sintassi del comando Linux xargs

La sintassi del comando xargs è:


xargs [options] [command [initial-arguments]]

Puoi visualizzare tutte le opzioni e gli argomenti invocando il comando man xargs dal terminale. La sezione seguente elenca alcuni esempi di comando args.

Esempio semplice di Linux xargs

Il comando xargs senza alcun comando fa eco agli argomenti nello standard input. Nell'esempio seguente l'output del comando ls viene inviato tramite pipe al comando xargs e il comando xargs senza alcun comando fa eco all'elenco dei file nell'input standard.


# ls | xargs

Esempio Xargs 1.a

L'esempio seguente mostra come l'output del comando echo viene reindirizzato a xargs e il comando xargs utilizza l'argomento pipe per creare cartelle usando mkdir .


# echo 'one two three' | xargs mkdir

Esempio Xargs 1.b

Numero limite di argomenti

Il numero di argomenti passati a xargs è definito dal limite del tuo sistema. Il -n switch limita il numero di argomenti da passare a un determinato comando. Il comando xargs verrà eseguito continuamente con n numero di argomenti fino all'esaurimento di tutti gli argomenti.

L'esempio seguente limita il numero di argomenti letti dallo standard input a 2. Il comando Xargs continuerà a leggere due argomenti alla volta finché non li avrà completati. Inoltre, il -t opzione stamperà il comando nell'output standard prima di eseguirlo.


# echo "file1 file2 file3 file4 file5" | xargs -n 2 -t touch

Xargs Esempio 2

Abilita il prompt dell'utente prima dell'esecuzione

Gli xarg con -p l'opzione richiederà all'utente prima dell'esecuzione del comando. L'esempio seguente mostra che il comando xargs richiede all'utente la "Y" o la "N" prima di continuare con la creazione di cartelle con ogni argomento.


# echo Hello World | xargs -p mkdir
# echo one two three | xargs -p -n 1 mkdir

Xargs Esempio 3

Elimina i file con il comando trova e xargs

Uno degli usi più comuni di xargs è usarlo con il comando find. Considera una situazione in cui desideri rimuovere o rinominare un gruppo di file dopo aver eseguito il comando trova. Qui sia il comando trova che xargs possono essere usati insieme su file che corrispondono a determinati attributi e quindi eliminarli o rinominarli in una volta sola.

Ad esempio, supponiamo di voler eliminare tutti i file in /tmp cartella quelli vengono creati negli ultimi cinque minuti. Per farlo usando xargs, per prima cosa, scopri tutti i file che corrispondono ai criteri che hai scelto usando find comando e quindi reindirizzare l'output al comando xargs che a sua volta utilizzerà rm comando per rimuoverli.


# find /tmp/* -cmin -5 
# find /tmp/* -cmin -5 | xargs -t rm
# find /tmp/* -cmin -5 

Xargs Esempio 4

Cerca pattern usando xargs

Un altro potente utilizzo del comando Xargs è cercare un pattern in un elenco di file restituiti da un altro comando unix come ls o find . L'esempio seguente combina find e xargs comando in cui il comando trova restituisce tutti i file di testo (.txt) dalla directory di lavoro corrente. Il risultato, ovvero i nomi dei file, vengono quindi reindirizzati al comando xargs dove cerchiamo la parola "file" usando grep "file" . Se il modello è presente nei file, le righe contenenti il ​​modello verranno stampate nel terminale insieme al nome del file:


# find . -name "*.txt" | xargs grep "file"

Xargs Esempio 5

Esegui più comandi con xargs

Finora abbiamo visto come il comando xargs utilizza argomenti convogliati per eseguire varie attività come rinominare un batch di file, cercare un modello e così via. Mentre esegue queste operazioni, utilizza un singolo comando dopo l'operazione in pipe. È anche possibile eseguire più comandi insieme a xargs.

Ad esempio, se vuoi creare più file ed elencarli contemporaneamente usando il comando xargs, esegui il comando xargs con -I switch seguito dalla definizione di una stringa sostitutiva. Tutte le occorrenze della stringa di sostituzione vengono quindi sostituite con l'argomento passato a xargs.


# echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

Xargs Esempio 6

Esecuzione di comandi in parallelo

In alcune situazioni, potresti usare xargs per invocare un comando ad alta intensità di calcolo per ogni argomento. Sfruttando la tua macchina multi-core, è possibile invocare il comando in parallelo. Il -P switch fa esattamente questo definendo il numero massimo di processi. Per impostazione predefinita, il numero massimo di processi è 1.

Ad esempio, il seguente comando xargs stampa il numero da 1 a 30 prendendo 5 argomenti alla volta e in particolare esegue fino a 8 processi alla volta.


# printf %s\\n {1..30} | xargs -n 5 -P 8

Xargs Esempio 7

Accetta l'input da un file

Finora abbiamo visto che gli input per il comando xargs vengono letti dall'input standard o dall'output di altri comandi tramite l'operazione di pipe. Tuttavia, è anche possibile che il comando xargs legga direttamente l'input da un file. Il -a switch ti consente di definire un file per gli input necessari a xargs.

Il seguente comando xargs legge l'input da un file (input.txt) e quindi crea i file utilizzando il comando touch.


# cat input.txt
one.txt
two.txt
# xargs -a input.txt touch

Xargs Esempio 8

Riepilogo

È tutto! Sebbene abbiamo trattato alcuni usi di base del comando XARGS, ora puoi provare funzionalità più avanzate di XARGS per creare un potente comando. Spero che il post ti sia piaciuto e grazie per averlo letto.


Linux
  1. sa Esempi di comandi in Linux

  2. w Esempi di comandi in Linux

  3. ac Esempi di comandi in Linux

  4. Esempi di comandi df in Linux

  5. du Esempi di comandi in Linux

10 esempi di comandi iftop in Linux

16 Esempi di comandi Echo in Linux

9 Esempi di comandi tee in Linux

9 esempi di comandi diff in Linux

Comando Xargs in Linux

Esempi di comandi id in Linux