GNU/Linux >> Tutoriales Linux >  >> Linux

Encuentra todos los archivos con un nombre que contenga una cadena

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

Linux
  1. ¿Número de archivos que contienen una cadena determinada?

  2. ¿Cómo encontrar todos los archivos que no contienen una cadena de texto?

  3. ¿Cómo encontrar todos los archivos que terminan en .rb con Linux?

  4. ¿Cómo encontrar todos los archivos con un directorio principal en particular en Linux?

  5. Listar todos los archivos de imágenes gráficas con find?

Comando Find de Linux con ejemplos prácticos

Encuentra archivos perdidos con Scalpel

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo encontrar todos los archivos con tamaño de archivo cero (0) bytes en un directorio recursivamente

Usar find y tar con archivos con caracteres especiales en el nombre

¿Encontrar directorios con todos los archivos dentro de más de X?