El -maxdepth la opción debe estar antes del -name opción, como a continuación.,
find . -maxdepth 1 -name "string" -print
Usa find :
find . -maxdepth 1 -name "*string*" -print
Encontrará todos los archivos en el directorio actual (eliminar maxdepth 1 si lo quiere recursivo) que contiene "cadena" y lo imprimirá en la pantalla.
Si desea evitar un archivo que contenga ':', puede escribir:
find . -maxdepth 1 -name "*string*" ! -name "*:*" -print
Si quieres usar grep (pero creo que no es necesario en la medida en que no desee verificar el contenido del archivo) puede usar:
ls | grep touch
Pero, repito, find es una solución mejor y más limpia para su tarea.
Use grep de la siguiente manera:
grep -R "touch" .
-R significa recursivo. Si prefiere no ir a los subdirectorios, sáltelo.
-i significa "ignorar caso". También puede encontrar que vale la pena intentarlo.
find $HOME -name "hello.c" -print
Esto buscará todo el $HOME (es decir, /home/username/ ) system para cualquier archivo llamado "hello.c" y mostrar sus rutas:
/Users/user/Downloads/hello.c
/Users/user/hello.c
Sin embargo, no coincidirá con HELLO.C o HellO.C . Para hacer coincidir las mayúsculas y minúsculas, pase el -iname opción de la siguiente manera:
find $HOME -iname "hello.c" -print
Salidas de muestra:
/Users/user/Downloads/hello.c
/Users/user/Downloads/Y/Hello.C
/Users/user/Downloads/Z/HELLO.c
/Users/user/hello.c
Pase el -type f opción para buscar solo archivos:
find /dir/to/search -type f -iname "fooBar.conf.sample" -print
find $HOME -type f -iname "fooBar.conf.sample" -print
El -iname funciona con el comando de búsqueda de la versión GNU o BSD (incluido OS X). Si su versión del comando de búsqueda no es compatible con -iname , pruebe la siguiente sintaxis usando grep comando:
find $HOME | grep -i "hello.c"
find $HOME -name "*" -print | grep -i "hello.c"
O prueba
find $HOME -name '[hH][eE][lL][lL][oO].[cC]' -print
Salidas de muestra:
/Users/user/Downloads/Z/HELLO.C
/Users/user/Downloads/Z/HEllO.c
/Users/user/Downloads/hello.c
/Users/user/hello.c