GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo excluir un directorio al buscar archivos en Linux

En Linux, el comando de búsqueda se usa para buscar archivos o carpetas desde la línea de comandos. Es un comando complejo y tiene una gran cantidad de opciones, argumentos y modos.

El uso más común del comando de búsqueda es buscar archivos utilizando una expresión regular o los nombres de archivo completos que se buscarán.

[ También te puede interesar:Cómo encontrar archivos que contengan una cadena de texto específica en Linux ]

Por ejemplo, para buscar archivos con nombres que comiencen con 'file_' , podemos ejecutar:

$ find . -name 'file_*'

Como puede ver arriba, genera las rutas completas de los archivos que devuelve la búsqueda. Aquí, el '.' implica el directorio actual . Find buscará el patrón de nombre de archivo en el directorio actual, todos los subdirectorios, y así sucesivamente hasta el nivel más profundo de la estructura de archivos. Del mismo modo, puede tener cualquier otro directorio en lugar de '.' .

Excluir un directorio mientras busca archivos

Ahora, puede haber escenarios en los que un usuario esté seguro de que una determinada carpeta o carpetas no contienen el archivo que se busca. Por lo tanto, es una buena idea excluir dichas carpetas de la búsqueda, para que el comando devuelva los resultados más rápido.

Para excluir un directorio de la búsqueda, use el '-prune' argumento:

$ find . -name './test' -prune -o -name 'file_*'

Primero analicemos lo que está pasando aquí.

La parte "-name './test' -prune" implica:excluir la carpeta ‘test’ de buscar Después de eso, '-o' le dice al comando:qué más se debe hacer una vez que el comando excluye ‘test’ . Simplemente pasamos el patrón descrito en el ejemplo anterior aquí.

Este patrón ahora se ejecutará en todas las carpetas, excepto ‘test’ .

Ahora puede ver que la búsqueda excluye la carpeta ‘test’ . Sin embargo, el nombre de la carpeta en sí se está imprimiendo.

Excluir un nombre de directorio de la salida de búsqueda

Para evitar esto, simplemente agregue '-print' al final. Esta opción excluirá el nombre del directorio de la salida.

$ find . -name './test' -prune -o -name 'file_*' -print

El patrón ahora ha buscado archivos en el directorio actual y ha excluido la ‘prueba’ directorio.

Conclusión

En este artículo, hemos visto cómo excluir un directorio al buscar archivos usando el comando de búsqueda. Tenga en cuenta que los ejemplos proporcionados en este artículo buscan archivos basados ​​en nombres de archivo ('-name') . Hay muchas otras formas de buscar archivos dentro del comando de búsqueda. Asegúrese de consultar la página de manual del comando de búsqueda para explorarlos en profundidad.

Gracias por leer y no dude en dejar comentarios o preguntas en los comentarios a continuación.


Linux
  1. Búsqueda de archivos en la línea de comandos (instrucciones)

  2. Cómo encontrar el número de archivos en un directorio y subdirectorios

  3. Cómo cambiar el nombre de los archivos en Linux

  4. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  5. Cómo excluir archivos de cierto tamaño de la copia en Linux

Cómo contar archivos en el directorio en Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo listar archivos recursivamente en Linux

Cómo contar archivos en el directorio en Linux

Cómo contar el número de archivos en un directorio en Linux

Cómo encontrar carpetas en Linux