Cómo utilizar “find” para encontrar directorios en Linux

Este es un tutorial pensado para que la experiencia con Linux sea más eficiente para los usuarios, por lo que se les llevará a través de las diferentes maneras de encontrar un directorio en Linux.

encontrar-directorios-en-linux

Como ya la mayoría sabrá, en Linux todo es un gran archivo que incluye directorios, siendo así una de las cosas comunes que un usuario de Linux hará dentro de la línea de comandos es la búsqueda de un archivo o un directorio.

En el sistema operativo existen varios medios y utilidades diferentes que pueden ser utilizados para buscar archivos en la línea de comandos, como find, locate y which. Sin embargo, la última utilidad (which) sólo se utiliza para localizar un comando.

Para el mejor entendimiento de este tutorial, se tratará de hacer un buen enfoque principalmente en la utilidad find, el cual busca archivos en un sistema de archivos Linux en vivo, y que 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 a través de un sistema de archivos en vivo. Además, no ofrece flexibilidad en cuanto a dónde buscar (punto de partida.)

Con todo esto en mente, a continuación se muestra la sintaxis para ejecutar el comando locate:

Locate [opción] [patrón de búsqueda]

Para demostrar la desventaja de locate, vamos a suponer 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 que locate sólo coincide con el nombre de archivo (directorio) (que es exactamente pkg) pero no con la ruta (/ path / to / pkg). Donde \ es un carácter globbing, deshabilita la sustitución implícita de pkg por * pkg *.

locate –basename ‘\pkg’

Como se puede ver en la salida de comando anterior, locate buscará desde el directorio raíz (/), por eso se combinan otros directorios con el mismo nombre. Por lo tanto, para solucionar este molesto problema hay que utilizar find siguiendo la sintaxis simplificada a continuación:

find starting-point options [expression]

Ahora, si lo que se desea es buscar el mismo directorio (pkg) anterior, dentro del directorio de trabajo actual, hay que ejecutar el siguiente comando, donde el flag -name lee la expresión que en este caso es el directorio basename.

find . -name “pkg”

Y si se encuentran errores de “Permiso denegado”, hay que comprender que hay que utilizar el comando sudo de la siguiente manera:

sudo find . -name “pkg”

También se puede impedir que el ordenador busque otros tipos de archivo, excepto los directorios, utilizando el indicador -type para especificar el tipo de archivo (en el comando siguiente d significa directorio) de la siguiente manera:

sudo find . -type d -name “pkg”

Además, si se desea listar el directorio en un formato de lista largo, hay que emplear el interruptor de acción -ls:

sudo find . -type d -name “pkg” -ls

consola-linux

A continuación, la opción -iname permitirá una búsqueda insensible de mayúsculas y minúsculas:

sudo find . -type d -iname “pkg”

sudo find . -type d -iname “PKG”

Finalmente, para encontrar información de uso que resulte ser más interesante y avanzada, hay que leer las páginas del manual de find y locate.

man find

man locate

Como última observación, el comando find es más fiable y eficiente para buscar archivos (o directorios) en un sistema Linux cuando se compara con el comando locate. Por lo que esta guía puede resultar bastante útil para los usuarios que desconocían esta función, haciendo así que manejen Linux de una manera más placentera y eficiente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Post Relacionados