GNU/Linux >> Linux Esercitazione >  >> Linux

Trova tutti i file con nome contenente una stringa

Il -maxdepth l'opzione dovrebbe essere prima del -name opzione, come di seguito.,

find . -maxdepth 1 -name "string" -print

Usa find :

find . -maxdepth 1 -name "*string*" -print

Troverà tutti i file nella directory corrente (cancella maxdepth 1 se lo vuoi ricorsivo) contenente "stringa" e lo stamperà sullo schermo.

Se vuoi evitare file contenenti ':', puoi digitare:

find . -maxdepth 1 -name "*string*" ! -name "*:*" -print

Se vuoi usare grep (ma penso che non sia necessario se non vuoi controllare il contenuto del file) puoi usare:

ls | grep touch

Ma, ripeto, find è una soluzione migliore e più pulita per il tuo compito.


Usa grep come segue:

grep -R "touch" .

-R significa ricorrenza. Se preferisci non entrare nelle sottodirectory, saltalo.

-i significa "ignora maiuscole e minuscole". Potresti scoprire che vale la pena provare anche questo.


find $HOME -name "hello.c" -print

Questo cercherà l'intero $HOME (es. /home/username/ ) per tutti i file denominati "ciao.c" e visualizzare i loro percorsi:

/Users/user/Downloads/hello.c
/Users/user/hello.c

Tuttavia, non corrisponderà a HELLO.C o HellO.C . Per trovare la corrispondenza non viene fatta distinzione tra maiuscole e minuscole, passare -iname opzione come segue:

find $HOME -iname "hello.c" -print

Risultati di esempio:

/Users/user/Downloads/hello.c
/Users/user/Downloads/Y/Hello.C
/Users/user/Downloads/Z/HELLO.c
/Users/user/hello.c

Passa il -type f opzione per cercare solo i file:

find /dir/to/search -type f -iname "fooBar.conf.sample" -print
find $HOME -type f -iname "fooBar.conf.sample" -print

Il -iname funziona su GNU o BSD (incluso OS X) version find comando. Se la tua versione del comando find non supporta -iname , prova la seguente sintassi utilizzando grep comando:

find $HOME | grep -i "hello.c"
find $HOME -name "*" -print | grep -i "hello.c"

OPPURE prova

find $HOME -name '[hH][eE][lL][lL][oO].[cC]' -print

Risultati di esempio:

/Users/user/Downloads/Z/HELLO.C
/Users/user/Downloads/Z/HEllO.c
/Users/user/Downloads/hello.c
/Users/user/hello.c

Linux
  1. Centos:rinominare tutti i file con un certo nome?

  2. Numero di file contenenti una determinata stringa?

  3. Come trovare tutti i file che non contengono una stringa di testo?

  4. Come trovare tutti i file/cartelle con l'autorizzazione 777 in Linux?

  5. Come trovare tutti i file con dimensione del file zero (0) byte in una directory in modo ricorsivo

Comando Trova Linux con esempi pratici

Trova i file persi con Scalpel

Come trovare file contenenti una stringa di testo specifica in Linux

Elimina tutti i file tranne che in una determinata sottodirectory con Trova?

Come trovare tutti i file con una particolare directory principale in Linux?

Trova directory contenenti un certo numero di file