Come trovare ed eliminare i file in Linux

Come trovare ed eliminare i file in Linux
Questo tutorial spiega come combinare il comando Linux Trova con gli altri per cercare ed eliminare i file con un'esecuzione di un singolo comando.

Dopo aver letto questo tutorial, saprai come semplificare il compito di rimuovere i file in Linux utilizzando tecniche diverse. Questo tutorial è ottimizzato sia per gli utenti nuovi che esperti, andando direttamente al punto pratico e spiegando ogni aspetto. Ti incoraggio a praticare tutti gli esempi forniti per incorporare questa conoscenza. Fai solo attenzione al contenuto che elimina.

Questo articolo include gli screenshot di ogni passaggio, rendendo facile per tutti gli utenti Linux applicarli.

Trovare ed eliminare i file in Linux

Questa sezione spiega le diverse tecniche per trovare i file ed eliminarli al volo con un singolo comando o con la combinazione di comandi.

Per cominciare, vediamo cosa c'è nella directory della home usando il ls (Elenco) Comando.

ls

Come puoi vedere nella figura precedente, ci sono diversi file e directory. Tra questi, possiamo vedere il 1.TXT, 2.TXT E 3.TXT.

Possiamo utilizzare il comando Trova seguito dal tipo di file, dal nome del file e dal -eliminare opzione.

Ma nel seguente esempio, non rimuoveremo un file specifico ma tutti i file con ".estensione txt ".

Trovare . -tipo f -name "*.txt "-delete

Dove:

  • Trovare: Il comando Find viene evidentemente utilizzato per cercare i file.
  • . (Punto): Il punto dopo il comando Trova specifica che l'operazione deve essere eseguita all'interno della directory corrente. Il nostro caso è nella directory della casa, quindi questo punto è uguale a /home/utente.
  • -Tipo F: Questa opzione specifica quali file vogliamo trovare. Nel caso in cui desideri cercare le directory, sostituire la F con un D.
  • -nome: Questa è l'opzione per specificare il target file/directory. Questa opzione deve essere digitata prima del nome del file/directory per definirlo.
  • “*.TXT": In questo caso particolare, cerchiamo tutto il ".file txt "che specifichiamo digitando"*.TXT".
  • -eliminare: Questa opzione indica al comando Trova di eliminare i file trovati.

Come puoi vedere nello screenshot precedente, dopo aver eseguito il ls comanda di nuovo, i file txt non vengono visualizzati. Sono stati rimossi dal comando precedentemente eseguito.

Naturalmente, puoi trovare ed eliminare i file specifici come mostrato nella figura seguente dove File3 viene trovato e rimosso.

Trovare . -tipo f -name file3 -delete

Come spiegato nell'elenco del comando e delle opzioni precedenti, se si desidera rimuovere una directory anziché un file, è necessario sostituire il F con un D dopo il -tipo Opzione come mostrato nella seguente immagine:

Trovare . -tipo d -name dir1 -delete

Supponiamo che tu voglia eliminare molti file la cui prima parte dei loro nomi è la stessa. Nella seguente screenshot, puoi vedere il File1, file2 E File3.

Se si desidera rimuovere tutti i file "filex", è necessario sostituire la parte dei nomi dei file senza coincidenza con il jolly (*) come mostrato nell'esempio seguente:

Trovare . -tipo f -name "file*" -delete

Tutti gli esempi precedenti hanno spiegato come eliminare i file utilizzando il -eliminare opzione. Questa sezione spiega come ottenere lo stesso risultato usando il -Exec comando.

La prima parte del seguente comando era già stata spiegata in precedenza. Il comando incorporato -exec viene utilizzato per applicare un'azione in base al risultato del comando precedente.

Trovare . -Nomina "qualcosa.log "-exec rm -rf \;

Dove:

  • -Exec: Istruisce di eseguire un comando posteriore dopo l'esecuzione del primo comando (trova).
  • rm -rf: Questo comando viene utilizzato per forzare la rimozione di file e directory che corrispondono ai nomi dati.
  • "": Questo è il Trovare comando segnaposto, il che significa che impiega il file o i nomi di directory assegnati al comando Trova per eseguire il comando dato (dopo -Exec) su di essi. Nell'esempio precedente, rm -rf è applicato al segnaposto che rappresenta il "tronco d'albero"
  • "\;": La barra posteriore e il punto e virgola chiude o finiscono il -Exec

Ora vediamo un nuovo scenario usando di nuovo il comando LS. Come puoi vedere, ci sono diversi ".file txt ".

In questo caso, sostituiremo il -eliminare Opzione con la -Exec Rm Ancora una volta per eliminare tutti i ".TXT ”File come abbiamo fatto nel secondo esempio di questo documento ma utilizzando una tecnica diversa.

Puoi vedere il comando nella terza riga della figura seguente. Il comando LS precedente mostra i file esistenti prima di eseguire Trovare, e il secondo LS mostra il risultato con tutto ".file txt "eliminati.

Trovare . -tipo f -name "*.txt "-exec rm -f \;

Ora, creiamo un nuovo scenario che puoi vedere nel seguente esempio. Questo scenario include diversi ".txt "e".file c ".

Supponiamo che tu voglia rimuovere entrambi .TXT E .C file immediatamente utilizzando l'opzione -delete anziché l'opzione -exec. Come puoi vedere nella seguente immagine, i file di nome sono tra il \ ( E \). Prima del secondo nome del file, abbiamo il -o opzione seguita dal file -nome e il secondo nome del file (o condizione in questo caso, poiché stiamo eliminando tutti i ".file txt "). Puoi aggiungere il -o -name molte volte di cui hai bisogno, ma ricorda che il primo -nome non è preceduto dal -o opzione.

Trovare . \( -nome "*.c "-o -name"*.txt "\) -delete

Come puoi vedere, entrambi .TXT E .C I file sono stati rimossi correttamente.

Ora, combiniamo il comando Trova con il comando Xargs (spiegato alla fine di questo tutorial).

Nel seguente esempio, eliminiamo tutto ".file txt "utilizzando Xargs, dove -IO è il segnaposto e tra %, eseguiamo il comando.

Come puoi vedere, dopo la seconda esecuzione di LS, tutto .C E .TXT I file sono stati rimossi.

Trovare *.txt -type f | Xargs -I % rm " %"

La sintassi per eliminare molti file è più semplice Xargs. Nel comando seguente, entrambi .C E .TXT i file vengono rimossi.

Trovare *.TXT *.C -Type F | Xargs -I % rm " %"

Infine, supponiamo che tu voglia rimuovere i file per data e non per nome o estensione. In questo caso, il comando Find può identificare le date MTime (Creazione o File di modifica) dei file e delle directory.

Nella seguente immagine, puoi vedere il dir2 Directory che contiene 4 file: File1, file2, File3 E file4. Tutti i file all'interno del dir2 sono stati creati nelle ultime 24 ore.

L'identificazione dei file è possibile utilizzando il -mtime Opzione seguita dall'intervallo di tempo dei file. In questo caso, il -1 L'opzione indica 1 giorno, 24 ore. IL -1 significa i file creati o modificati l'ultimo giorno, mentre +1 significa che i file creati o modificati più di un giorno fa.

Nel seguente esempio, utilizziamo il comando Trova con l'opzione -mtime per rimuovere i file creati o modificati l'ultimo giorno.

Trova Dir2 -Type f -mtime -1 -delete

Xargs vs -exec

IL Xargs Il comando è quasi sempre implementato con tubi (ma non necessariamente) per usare il primo comando come argomento. Contrariamente al tubo, consente l'uso del primo comando come argomento e non solo come output precedente o comando predecessore.

Il seguente esempio in questa sezione elenca i file e le directory utilizzando il ls (Elenco) comando e sposta i file elencati in una directory diversa con MV E Xargs comandi. Questo non è il metodo corretto per spostare i file, ma è utile come esempio per mostrare come il Xargs Opere di comando.

Innanzitutto, dai un'occhiata al mio Linuxhintdir directory. Come puoi vedere, abbiamo 3 file: File1, file2 E File3.

LS DIR1 DIR2

Ora, spostiamo tutti i file all'interno dir1 A dir2 usando il MV comando.

ls ~/dir1/* | XARGS MV -T ~/DIR2

Come puoi vedere, il risultato LS ~/Dir1/* è stato passato Xargs dopo il MV comando.

IL -Exec Il comando è simile a Xargs. Può eseguire comandi in base all'output del primo comando. Contrariamente a Xargs, -Exec esegue il comando ogni volta che un file corrisponde alla condizione. Se utilizziamo il comando -exec per rimuovere i file, li rimuoverà per file. Mentre Xargs esegue il comando immediatamente per tutti i file abbinati. Questo fa Xargs un po 'più veloce di -exec. Pertanto, se hai a che fare con molti file, Xargs sarebbe conveniente -Exec.

Conclusione

Linux ha molti metodi per ottenere lo stesso compito. Trovare e rimuovere i file con un singolo comando è una consapevolezza che qualsiasi utente Linux dovrebbe avere in modo indipendente sulla sua esperienza. Questo tutorial si concentra sulla ricerca e l'eliminazione dei file, ma Xargs e -Exec possono essere utilizzati con molti comandi Linux. È importante menzionare che alcune funzioni sono disponibili solo in Trovare versione. La maggior parte dei suggerimenti spiegati sono utili per quasi ogni distribuzione Linux.

Grazie per aver letto questo tutorial spiegando come trovare ed eliminare i file in Linux. Continua a seguirci per ulteriori suggerimenti professionali.