Búsqueda de sitios web

Formas de utilizar el comando 'buscar' para buscar directorios de manera más eficiente


Este tutorial lo llevará a través de las diferentes formas de encontrar un directorio en Linux. Como ya sabrás, en Linux todo es un archivo incluidos los directorios. Y una de las cosas más comunes que hará un usuario de Linux dentro de la línea de comandos es buscar un archivo o directorio.

Existen 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 (cuál) 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 activo y es más eficiente y confiable en comparación con locate.

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, no ofrece flexibilidad respecto de dónde buscar (punto de partida).

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

locate [option] [search-pattern]

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

Nota: en el siguiente comando, la opción --basename o -b indica localizar< para que solo coincida con el nombre base del archivo (directorio) (que es exactamente pkg) pero no con la ruta (/path/to/pkg). Cuando \ es un carácter global, deshabilita el reemplazo implícito de pkg por *pkg*.

locate --basename '\pkg'

Como puede ver en el resultado 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 siguiente:

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 nombre base del directorio.

find . -name "pkg"

Si encuentra errores de "Permiso denegado", use el comando sudo de esta manera:

sudo find . -name "pkg"

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

sudo find . -type d -name "pkg"

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

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

A continuación, la opción -iname habilitará una búsqueda que no distingue 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 find y locate.

man find
man locate

Como última observación, el comando buscar es más confiable y eficiente para buscar archivos (o directorios) en un sistema Linux cuando se compara con el comando locate.

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, permanezca siempre conectado a Tecmint.