El comando de búsqueda de Linux resulta útil cuando se buscan archivos directamente desde la línea de comandos. El comando de búsqueda recibe criterios de búsqueda como permisos, propiedad, modificación, tamaño, hora y fecha, entre otros, para ubicar el archivo o directorio en cuestión.
El comando de búsqueda está disponible en todas las distribuciones de Linux de forma predeterminada, por lo tanto, no es necesario instalar paquetes especiales para usarlo. Debido a su importancia, el comando de búsqueda es un comando esencial para aprender si desea obtener más información sobre las navegaciones de línea de comandos en cualquier distribución de Linux.
Resaltaremos algunos de los ejemplos de comandos de búsqueda y explicaremos las diversas opciones que puede usar.
Sintaxis
$ find location comparison-criteria search term
Listado de archivos en el directorio actual
Para enumerar todos los archivos en un directorio, incluidos los archivos dentro de las carpetas, ejecute el siguiente comando.
$ find .
Salida de muestra
Buscar archivos dentro de un directorio específico
Si desea buscar todos los archivos en un directorio dado, use el comando de búsqueda de la siguiente manera
$ find directory_name
Por ejemplo, para buscar todos los archivos en /boot, ejecute el comando
$ find /boot
Salida de muestra
Buscar archivos usando el nombre de archivo dentro de un directorio específico
Si desea especificar los criterios de búsqueda utilizando el nombre del archivo en un directorio, la sintaxis será la siguiente
$ find directory_name -name "file_name"
Por ejemplo, para buscar archivos Apache2 en el directorio /etc, ejecute
$ find /etc -name "apache2"
Salida
Busca recursivamente todos los archivos con una extensión de archivo específica
Si desea buscar archivos particulares que tengan una extensión específica, en un directorio determinado, la sintaxis será la siguiente
$ find directory_name -name "*.extension"
Por ejemplo, para buscar todos los archivos de configuración (.conf) en el directorio /etc, ejecute
$ find /etc -name "*.conf"
Salida de muestra
Limitación de la profundidad de búsqueda
Puede decidir limitar la profundidad de su búsqueda de archivos en los directorios. Por ejemplo, si desea limitar su búsqueda de archivos al primer nivel del directorio, la sintaxis será
$ find directory_name -maxdepth 1 -name "*.conf"
Entonces, si desea limitar la búsqueda de archivos al directorio de primer nivel en /etc para archivos con .conf
extensión ejecutar:
$ find /etc -maxdepth 1 -name "*.conf"
Salida de muestra
Como se ve en el resultado anterior, la búsqueda de archivos se limita a /etc nivel de directorio. Si desea realizar una búsqueda más intensiva y profundizar en otros directorios dentro del /etc directorio, aumente la profundidad máxima valor.
Por ejemplo, para buscar archivos con .conf extensión hasta la tercera ejecución del directorio
$ find /etc -maxdepth 3 -name "*.conf"
Salida de muestra
Como se ve en el resultado anterior, la búsqueda sube a los directorios 2 y 3.
Invertir resultados de búsqueda
También puede buscar archivos que no cumplan con los criterios dados con el comando de búsqueda. Este modo es útil cuando desea eliminar archivos conocidos del patrón de búsqueda.
Para hacer esto, use -not -name
atributo como se muestra
$ find /etc -maxdepth 1 -not -name "*.conf"
Salida de muestra
La salida anterior imprime todos los archivos que no tienen .conf extensión de archivo.
Usando buscar con el operador OR
Puede optar por combinar los resultados de la búsqueda con la búsqueda mediante el operador O, que está simbolizado por -o
bandera que se muestra en el siguiente ejemplo
$ find /etc -maxdepth 3 -name "cron" -o -name "ssh"
Salida de muestra
El comando anterior busca archivos con el nombre ssh O cron en el directorio
Buscar solo archivos o solo directorios
Si solo desea buscar archivos, use - type f
atributo como se muestra en el siguiente ejemplo
$ find /etc -type f -name "ssh"
Salida de muestra
Si desea buscar solo directorios, use - type d
atributo como se muestra en el siguiente ejemplo.
$ find /etc -type d -name "ssh"
Salida de muestra
Buscar archivos propiedad de un usuario en particular
Para buscar archivos propiedad de un usuario en particular en un directorio específico, use la sintaxis:
$ find /path -user username
Por ejemplo, para encontrar archivos propiedad del usuario james en /home
directorio ejecute el siguiente comando
$ find /home -user james
Salida de muestra
Buscar archivos con ciertos permisos de archivo
Para buscar archivos con permisos de archivo específicos, utilice la siguiente sintaxis
$ find /directory_name -type f -perm value
Por ejemplo, para buscar archivos con permisos 755 en /etc directorio, ejecute:
$ find /etc -type f -perm 755
Salida de muestra
Búsqueda de archivos con ciertos tamaños de archivos o un rango de archivos
El comando de búsqueda de Linux también ofrece a los usuarios la posibilidad de buscar archivos según el tamaño de sus archivos.
Busca archivos de tamaño N
Por ejemplo, para buscar archivos de 10kb ejecute:
$ find /etc -type f -size 10k
Salida de muestra
Para buscar archivos de más de 10 kb, ejecute
find /etc -type f -size +10k
Salida de muestra
Para buscar archivos de menos de 10kb ejecute
find /etc -type f -size -10k
Salida de muestra
Resumen
Esa fue una descripción general rápida de los ejemplos de comandos de búsqueda de Linux. Como ya se ha mostrado, la búsqueda de archivos y directorios en la línea de comandos es muy fácil. Saber cómo funciona el comando es una herramienta esencial para todos los administradores de sistemas.
No dude en probar los ejemplos de comandos de búsqueda anteriores y cuéntenos cómo le fue.