Esempi pratici del comando xargs di Linux
Stai cercando modi diversi per semplificare il tuo flusso di lavoro Linux e desideri automatizzare le tue attività? Il comando Linux xargs potrebbe essere proprio quello che non sapevi. In questo articolo vedremo alcuni esempi pratici di utilizzo di xargs per eseguire comandi su un elenco di elementi generati da altri comandi.
Come persona che usa Linux regolarmente, abbiamo scoperto che il comando xargs è uno strumento prezioso nel nostro flusso di lavoro. Ci aiuta a eseguire facilmente attività complesse su un gran numero di file o dati. Il comando xargs è particolarmente utile quando si lavora con lunghi elenchi di elementi o dati, poiché semplifica il processo di esecuzione di un comando su ciascun elemento individualmente.
Con xargs possiamo eseguire comandi come copiare, eliminare, comprimere, rinominare e contare un gran numero di file o dati. Nel seguente articolo, esamineremo alcuni esempi pratici su come utilizzare xargs. Alla fine, avrai una buona conoscenza di come utilizzare xargs e sarai in grado di portare le tue competenze su Linux al livello successivo.
Quindi, se sei pronto per aumentare il tuo tasso di progresso su Linux, tuffiamoci negli esempi pratici del comando Linux xargs.
1. Copia un elenco di file in una nuova directory
Supponiamo di avere un elenco di file in una directory che è necessario copiare in una nuova directory, il comando xargs con il comando cp può essere utilizzato per eseguire questa attività in modo rapido e semplice. Invece di copiare manualmente ciascun file uno per uno, questo metodo consente di eseguire l'operazione di copia su tutti i file contemporaneamente.
Ecco un esempio di copia di file in una nuova directory -
ls *.txt | xargs -I '{}' cp '{}' /path/to/new_directory/
Il comando genererà un output simile a questo −
file1.txt
file2.txt
Per copiare tutti i file ".txt" nella directory corrente in una nuova directory, iniziamo utilizzando il comando "ls" per elencare tutti i file ".txt". L'output risultante viene passato al comando xargs. Utilizzando l'opzione -I, possiamo sostituire il segnaposto '{}' con il nome file effettivo. Quindi, il comando "cp" viene utilizzato per copiare ciascun file nella nuova directory. In sintesi, questo comando sfrutta la capacità di xargs di elaborare l'output di un comando come input per un altro comando, semplificando la copia di più file in una nuova posizione in una volta sola.
2. Elimina tutti i file con un'estensione specifica
Per eliminare tutti i file con un'estensione specifica in una directory, puoi utilizzare il comando xargs con il comando rm.
Ecco un esempio di eliminazione di file con estensioni specifiche −
ls *.log | xargs rm
L'output sarà simile a questo −
file1.log
file2.log
File3.log
Supponiamo di voler eliminare tutti i file nella directory corrente con l'estensione ".log". Puoi farlo usando il comando sopra. Questo comando inizia elencando tutti i file con estensione ".log" nella directory corrente, quindi passa ciascuno di questi nomi di file al comando "rm" utilizzando il comando xargs. Il comando "rm" elimina questi file uno per uno, lasciandoti una directory più pulita e organizzata.
3. Comprimi tutti i file in una directory
Per comprimere tutti i file in una directory, puoi utilizzare il comando xargs con il comando tar.
Ecco un esempio per comprimere tutti i file in una directory −
ls | xargs tar -czvf archive.tar.gz
L'output del terminale sarà simile a questo −
user@ubuntu:~/directory$ ls | xargs tar -czvf archive.tar.gz
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt
archive.tar.gz
user@ubuntu:~/directory$
Questo comando sostanzialmente prende tutti i file presenti nella directory corrente e li invia al comando xargs. Xargs passa quindi ciascun nome di file al comando tar, che comprime tutti i file in un file tar. In altre parole, questo comando viene utilizzato per creare un archivio di tutti i file nella directory corrente.
4. Converti più file in maiuscolo
Se desideri convertire più file in maiuscolo in una directory, puoi utilizzare il comando xargs con il comando mv.
Ecco un esempio di conversione di più file in maiuscolo −
ls | xargs -I '{}' sh -c 'mv "{}" $(echo "{}" | tr "[:lower:]" "[:upper:]")'
L'output del terminale sarà simile a questo −
file1.txt
file2.txt
file3.txt
mv file1.txt FILE1.TXT
mv file2.txt FILE2.TXT
mv file3.txt FILE3.TXT
Il comando seguente esamina tutti i file nella directory corrente e invia l'elenco al comando xargs. L'opzione -I ci consente di utilizzare i nomi dei file effettivi invece del segnaposto '{}'. Il comando utilizza quindi il comando sh per eseguire un comando shell che converte i nomi dei file in maiuscolo e rinomina i file.
5. Contare il numero di righe in più file
Se vuoi contare il numero di righe in più file in una directory, puoi utilizzare il comando xargs con il comando wc.
Di seguito è riportato un esempio per contare il numero di righe in più file −
ls | xargs wc -l
L'output sarà simile a questo −
12 file1.txt
24 file2.txt
6 file3.txt
Il comando "ls | xargs wc -l" visualizzerà il numero di righe in ciascun file presente nella directory corrente. Questo viene fatto utilizzando il comando 'ls' per elencare tutti i file nella directory corrente e quindi passando l'output a 'xargs'. Il comando 'xargs' prende quindi il nome di ciascun file e lo passa al comando 'wc', che conta il numero di righe in ciascun file.
6. Per generare un elenco di tutti gli account utente Linux presenti nel sistema
Se desideri l'elenco di tutti gli account utente associati al sistema Linux, puoi fare riferimento al seguente comando.
cut -d: -f1 < /etc/passwd | sort | xargs
-
cut -d: -f1 < /etc/passwd − Questo estrae il primo campo dal file /etc/passwd, che contiene un elenco di utenti sul sistema, separati da un delimitatore di due punti (:). L'opzione -d specifica il delimitatore da utilizzare e l'opzione -f specifica quale campo estrarre. In questo caso, stiamo estraendo il primo campo (ovvero il nome utente).
sort − Questo ordina l'elenco di nomi utente in ordine alfabetico.
xargs − Questo prende l'elenco di nomi utente ordinati e li passa come argomenti al comando successivo.
Quando esegui questo comando otterrai questo tipo di output previsto −
$ cut -d: -f1 < /etc/passwd | sort | xargs echo
bin daemon ftp games gnats irc list lp mail man messagebus news nobody proxy root systemd-network sync sys syslog systemd-bus-proxy systemd-journal-gateway systemd-journal-remote systemd-timesync uucp www-data
Conclusione
In conclusione, il comando xargs è uno strumento versatile e utile che può essere utilizzato per automatizzare attività complesse su grandi quantità di dati o file. In questo articolo, abbiamo fornito alcuni esempi pratici su come utilizzare il comando xargs per eseguire varie operazioni come rinominare, comprimere e contare il numero di righe in più file in una directory. Il comando xargs consente di risparmiare tempo e semplifica le attività ripetitive ottimizzando il processo di esecuzione dei comandi su più file. Come utente Linux, padroneggiare il comando xargs è un'abilità essenziale che può migliorare significativamente la produttività e l'efficienza del flusso di lavoro.