Come usare Xargs con Find in Linux

Come usare Xargs con Find in Linux
Questo tutorial spiega come utilizzare i comandi Xargs e trovare per fare operazioni combinate.

Dopo aver letto questo tutorial, è possibile cercare file utilizzando il comando Trova ed eseguire un comando specifico in base ai risultati corrispondenti.

Istruzioni ed esempi sono utili per la maggior parte delle distribuzioni Linux. Il contenuto è ottimizzato sia per gli utenti Linux nuovi che esperti.

Tutti i passaggi descritti in questo articolo contengono schermate per rendere facile per tutti gli utenti di Linux capirli e applicarli.

Gli esempi di utilizzo inclusi in questo articolo sono i seguenti:

  • Trova ed elimina i file per estensione (tipo di file).
  • Trova ed elimina i file per nome.
  • Trova e modifica le autorizzazioni dei file in base alle autorizzazioni correnti.

Breve introduzione ai comandi Find e Xargs

IL Xargs comando, se combinato con altri comandi come Trovare, utilizza l'output del primo comando come argomento.

Ad esempio, eseguiamo il Trovare comanda per identificare i file con un'estensione o un tipo di file specifico. Possiamo aggiungere il Xargs comanda di eseguire un'azione per tutti i file che corrispondono all'estensione specificata Trovare.

Come puoi vedere nella riga seguente, un tubo separa il comando 1 e il comando 2, dove il comando 1 può essere qualsiasi comando come ls, e comando 2, incluso il comando xargs, seguito da un'azione specifica come gatto.

[Comando 1] | [Comando 2]

L'esempio applicabile sarebbe:

ls | Xargs Cat

Questo comando elencherà tutti i file all'interno della directory corrente. Quindi l'output (file elencati) verrà utilizzato da Xargs come argomento e il loro contenuto verrà stampato come indicato da Xargs Cat. Vedi la seguente screenshot:

Come trovare e spostare i file usando Xargs

La prima sezione di questo tutorial spiega come utilizzare i comandi Find e Xargs per cercare e spostare i file che corrispondono a una condizione, in questo caso, il tipo di file.

Cominciamo trovando i file per estensione e spostandoli su una directory specifica utilizzando Xargs.

Prima di iniziare, eseguire il ls comanda per mostrare file e directory all'interno della mia sottodirectory denominata Testdir.

ls

Come puoi vedere, ci sono diversi tipi di file, anche .TXT, .C, e file senza estensioni. Inoltre, presta attenzione al Tutorialdir directory.

Supponiamo che tu voglia spostare i file con un'estensione specifica in una directory. La sintassi è la seguente:

Trovare -nome '*.'-Type F | Xargs Mv -t

Nella sintassi precedente, il -nome L'opzione precede il nome o la condizione del file in base al nome del file. IL -Tipo F L'opzione specifica che il comando Trova tratta di file e non directory. IL -T L'opzione precedente alla directory di destinazione viene utilizzata per definire la directory di destinazione. Presta attenzione al jolly (*) precedente all'estensione, istruendo il comando Trovare di cercare tutti i file dell'estensione specificata indipendentemente dal nome.

Quindi, se vuoi muovere tutto .TXT file nella directory denominata Tutorialdir, eseguire il seguente comando:

Trovare . -nome '*.txt '-type f | Xargs Mv -t TutorialDir

Come puoi vedere, dopo aver eseguito il ls Comando due volte, i file sono stati spostati dalla directory corrente al Tutorialdir sottodirectory.

La sintassi è la stessa per tutti i tipi di file. Ripetiamolo, questa volta per .C File:

Trovare . -nome '*.C '-type f | Xargs Mv -t TutorialDir

Il primo comando LS mostra tre .C file nella directory corrente. Dopo aver eseguito il comando Trova con Xargs, il comando albero mostra tutti .I file C sono stati spostati al Tutorialdir directory, dove .TXT I file sono stati trasportati nell'esempio precedente.

Trova ed elimina file e directory per nome con Xargs

La sintassi per trovare ed eliminare i file utilizzando Xargs è la seguente:

Trovare -nome | Xargs Rm

Qui è dove è la directory principale che cerchi file e è il nome del file che si desidera trovare e rimuovere.

Vediamo lo scenario attuale nel seguente screenshot:

ls

Nel primo esempio, scegli file per tipo, come fatto nella sezione precedente, per rimuoverli, come mostrato di seguito:

Trovare . -nome "*.C "| Xargs RM

Come puoi vedere sopra, tutto .C i file sono stati eliminati correttamente.

Ora, lo scenario è il seguente:

ls

Nell'esempio corrente, userò il jolly per rimuovere tutti i file il cui nome inizia con "file", Indipendentemente dalla continuazione del nome.

Trovare . -Nome "File*" | Xargs Rm

Fino ad ora, questo articolo ha spiegato come gestire i file. Ora, vediamo come usare Find e Xargs con le directory. Nel nuovo scenario ci sono cinque nuove directory: dir1, dir2, dir3, dir4, E dir5, Come mostrato nella seguente immagine:

ls

Supponendo che tu voglia rimuovere tutte le directory con nomi che inizianoDir", Esegui lo stesso comando. Tuttavia, dopo il comando RM, aggiungi il -R Flag usato per gestire le directory, come mostrato nella figura seguente:

Trovare . -Nome "Dir*" | Xargs Rm -r

Trova ed elimina i file in base alle autorizzazioni

Questa sezione descrive la ricerca di file per autorizzazioni specifiche e la modifica usando Xargs.

Come puoi vedere di seguito, file qualcosa1.txt, qualcosa2.TXT, E qualcosa3.TXT Avere autorizzazioni complete per tutti (777).

ls -l

La sintassi per trovare i file per autorizzazione e modificarli è mostrata di seguito:

Trovare -Perm | Xargs chmod

Per trovare tutti i file con autorizzazioni complete a tutti (777) nella directory corrente e modificarli in autorizzazioni complete per il proprietario e leggere ed eseguire autorizzazioni per gli utenti del gruppo e altri (755), eseguire il comando eseguito nel seguente:

Trovare . -Perm 777 | Xargs Chmod 755

Conclusione

Come puoi vedere, il comando Xargs, se combinato con il comando Trova, è utile per attività sfuse o attività specifiche quando non si conosce una posizione del file. Entrambi i comandi sono facili da implementare e possono essere incorporati da nuovi utenti per alleviare la loro esperienza con il terminale Linux. Trova e Xargs sono comandi di base Linux Qualsiasi utente Linux deve sapere come applicare. Xargs può essere combinato con altri comandi di base come ls. Le istruzioni spiegate sopra sono utili per tutte le distribuzioni Linux.

Dai un'occhiata ad altri articoli per ulteriori suggerimenti e tutorial Linux.