GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare ed eliminare file che contengono un testo specifico nei loro nomi in Linux

Questa guida spiega come trovare ed eliminare file che contiene un testo o una stringa specifici nei loro nomi usando il comando find in Linux. Inoltre, impareremo anche come trovare ed eliminare i file che "non" contengono un testo specifico nei loro nomi.

Introduzione

Ho molti file PDF che contengono alcuni importanti suggerimenti e trucchi per Linux. Ho assegnato a quei file un nome di file univoco per una più facile identificazione.

Supponiamo, ad esempio, di aver salvato i file che contengono i dettagli di configurazione del server LDAP come ldapconfig.pdf , File di configurazione FTP come ftpconfig.pdf , dettagli di configurazione del server DHCP come dhcp_config.pdf , e così via.

Ho convertito la maggior parte di loro in articoli e li ho pubblicati qui nel nostro blog, in modo che anche altri utenti possano trarne vantaggio.

Il problema è che quei file stanno consumando molto spazio su disco. Dal momento che ho centinaia di file, non voglio trovarli ed eliminarli manualmente uno per uno. Potrebbero essere necessarie alcune ore per trovare ed eliminare tutti i file.

Mentre cercavo una soluzione semplice, sono venuto a sapere che il comando "trova" può aiutarmi in questo caso. Dopo aver esaminato le pagine man di find command, ho trovato una soluzione adatta. Continua a leggere.

1. Trova ed elimina i file che contengono un testo specifico nei loro nomi in Linux

Dai un'occhiata al seguente esempio. Ho i seguenti file in una directory chiamata "Linux_guides" .

$ cd Linux_guides/
$ ls
apache_config.pdf dhcp_config.pdf ldap_config.pdf php_install.pdf
apache_install.pdf ftp_config.pdf mysql_install.pdf

Ho completato la parte di installazione, quindi non ho bisogno dei file che contengono le parole "installa" nei loro nomi di file.

Invece di trovare ed eliminare uno per uno i file che contengono la frase "installa", possiamo eliminarli tutti in una volta usando il seguente comando:

$ find -type f -name '*install*' -delete

Il comando precedente eliminerà tutti i file che contengono la frase "installa" a loro nome e conservare tutto il resto.

Se delete opzione non è disponibile, puoi utilizzare uno qualsiasi dei seguenti comandi:

$ find -type f -name '*install*' -exec rm {} \;

Oppure,

$ find -type f -name '*install*' -exec rm {} +

Potresti chiedere che possiamo fare lo stesso usando "rm" comando come di seguito:

$ rm *install*

Sì, lo farà. Tuttavia, rm install il comando rimuoverà tutti i file contenenti "install" nel nome del file dalla directory corrente e si lamenterà se il nome della directory contiene "install" .

Ma, il "find -type f" Il comando cercherà ricorsivamente solo i file nella directory corrente e tutte le sottodirectory.

1.1. Trova i file che contengono un testo specifico nei loro nomi in Linux

Se vuoi solo trovare i file (non eliminare), rimuovi semplicemente le opzioni -delete -exec rm {} \; -exec rm {} + nei comandi precedenti.

Ad esempio, il comando seguente troverà solo i file che contengono la stringa "install" a loro nome:

$ $ find -type f -name '*install*'

Risultato di esempio:

./mysql_install.pdf
./apache_install.pdf
./php_install.pdf

2. Trova ed elimina i file che "non contengono" testo specifico nei loro nomi in Linux

Sai come eliminare un file che contiene una frase specifica nel suo nome. Vediamo ora come trovare ed eliminare i file che non hanno una frase o una stringa specifica a loro nome.

Per farlo, aggiungi semplicemente '-not' parametro nel comando trova come mostrato di seguito.

$ find -type f -not -name '*install*' -delete

Il comando precedente non verrà eliminato i file che hanno la frase "install" a loro nome ed eliminare tutto il resto.

Se elimina opzione non è disponibile, puoi utilizzare uno qualsiasi dei seguenti comandi:

$ find -type f -not -name '*install*' -exec rm {} \;

Oppure,

$ find -type f -not -name '*install*' -exec rm {} +

Per maggiori dettagli sul comando trova, fare riferimento alle pagine man.

$ man find

Conclusione

Ora sai come trovare un file che contiene un nome specifico nel suo nome e come eliminare un file che ha e non ha una parola specifica nel suo nome. Ciò sarà utile quando desideri eliminare un numero elevato di file dello stesso tipo in una directory.


Linux
  1. Elimina file e directory in base ai loro nomi. Nessun file o directory con questo nome?

  2. Come trovare ed eliminare directory e file vuoti in Unix

  3. Come trovare ed eliminare directory e file vuoti in Linux

  4. Come posso usare xargs per copiare file che hanno spazi e virgolette nei loro nomi?

  5. Comando Linux:come "trovare" solo file di testo?

Come trovare file in base alle loro autorizzazioni in Linux

Come trovare ed eliminare i collegamenti simbolici interrotti in Linux

Come trovare ed eliminare directory vuote in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Come trovare file duplicati in Linux e rimuoverli

Come eliminare file e directory utilizzando la riga di comando di Linux