Formas de utilizar el comando find para buscar directorios de forma más eficiente


Este tutorial lo guiará a través de las diferentes formas de encontrar un directorio en Linux. Como ya sabrá, al buscar un archivo o un directorio.

Hay varios medios y utilidades diferentes que se utilizan para buscar archivos en la línea de comando, como buscar, localizar y cuál. Sin embargo, la última utilidad (que) solo se usa para localizar un comando.

Para el alcance de este tutorial, nos centraremos principalmente en la utilidad de búsqueda, que busca archivos en un sistema de archivos Linux en vivo y es más eficiente y confiable en comparación con la ubicación.

La desventaja de Locate es que lee una o más bases de datos creadas por updatedb, no busca en un sistema de archivos activo. Además, tampoco ofrece flexibilidad en cuanto a dónde buscar (punto de partida).

A continuación se muestra la sintaxis para ejecutar el comando de localización:

# locate [option] [search-pattern]

Para demostrar la desventaja de localizar, supongamos que estamos buscando un directorio llamado pkg en el directorio de trabajo actual.

Nota: En el comando a continuación, la opción --basename o -b le dice a Locate que solo coincida con el nombre de base del archivo (directorio) (que es exactamente pkg) pero no la ruta (/ ruta/a/paquete). Donde \ es un carácter global, deshabilita el reemplazo implícito de pkg por * pkg *.

$ locate --basename '\pkg'

Como puede ver en la salida del comando anterior, Locate buscará comenzando desde el directorio raíz (/), es por eso que otros directorios con el mismo nombre coinciden.

Por lo tanto, para solucionar este problema, utilice find siguiendo la sintaxis simplificada a continuación:

$ find starting-point options [expression]

Veamos algunos ejemplos.

Para buscar el mismo directorio (pkg) anterior, dentro del directorio de trabajo actual, ejecute el siguiente comando, donde el indicador -name lee la expresión que en este caso es la nombre base del directorio.

$ find . -name "pkg"

Si encuentra errores de "Permiso denegado", use el comando sudo así:

$ sudo find . -name "pkg"

Puede evitar que find busque otros tipos de archivos, excepto directorios, utilizando la marca -type para especificar el tipo de archivo (en el comando debajo de d significa directorio) de la siguiente manera:

$ sudo find . -type d -name "pkg"

Además, si desea listar el directorio en un formato de lista larga, utilice el interruptor de acción -ls :

$ sudo find . -type d -name "pkg" -ls

A continuación, la opción -iname habilitará una búsqueda que no distinga entre mayúsculas y minúsculas:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 

Para encontrar información de uso más interesante y avanzada, lea las páginas de manual de buscar y localizar.

$ man find
$ man locate

Como último comentario, el comando de búsqueda es más confiable y eficiente para buscar archivos (o directorios) en un sistema Linux cuando se compara con el comando de ubicación.

De la misma manera que antes, no olvide enviarnos sus comentarios o preguntas a través de la sección de comentarios a continuación. Por último, manténgase siempre conectado a Tecmint.