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