Comando Find de Linux con ejemplos prácticos
El comando find es una poderosa utilidad de búsqueda que se utiliza para localizar archivos en sistemas operativos tipo Linux y Unix. Puede encontrar archivos y directorios según diferentes criterios como nombre, extensión, tipo, fecha de modificación y creación, permisos, tamaño, propietario.
Find también puede realizar una acción basada en un comando, por ejemplo, buscar archivos y ejecutar eliminar, contar, etc.
Este tutorial se enfocará en explicar la forma de usar el comando de búsqueda y lo guiará por ejemplos.
Sintaxis:
La sintaxis básica de encontrar el uso del comando es el siguiente:
find <directory-to-search> [OPTIONS] <find name,file,extension>
los -H
y -L
Las opciones se utilizan para administrar enlaces simbólicos durante la búsqueda, -P (no seguir enlaces simbólicos) y -L (seguir enlaces simbólicos).
1. Busque un archivo por nombre
Para encontrar un archivo por su nombre, use el comando buscar con -name
opción.
Suponiendo que desea buscar el archivo con el nombre ‘nginx.yaml’ en el directorio de Documentos, puede ejecutar el siguiente comando:
$ find /Documents -name nginx.yaml
Esto encontrará el archivo llamado «nginx.yaml» en Documentos / y todos los subdirectorios:
Además, para buscar el archivo «nginx.yaml» en el directorio actual y todos sus subdirectorios, ejecute:
$ find -name nginx.yaml
El punto (.) Después del comando de búsqueda indica que debe comenzar a buscar desde el directorio actual:
$ find . -name nginx.yaml
2. Busque archivos por extensión
Si desea buscar todos los archivos por extensión, puede usar el comando buscar con -name
opción siguiendo con el *.
Por ejemplo, puede buscar todos los archivos que tengan la extensión ‘.png’ en el directorio de inicio ejecutando el siguiente comando:
$ find $HOME -name *.png
3. Busque solo directorios
Si quieres buscar solo directorios, puede ejecutar el comando buscar con -type d
opción.
Supongamos que desea buscar todos los directorios en la carpeta Documentos /, ejecutemos:
$ find /Documents -type d
4. Busque solo archivos
Hay muchos tipos diferentes de archivos en Linux, tales como: directorios, enlaces simbólicos, socket, archivos regulares, etc. Si desea buscar solo archivos regulares, puede ejecutar el comando de búsqueda con la opción ‘-type f’.
Por ejemplo, suponiendo que solo encuentre archivos en el directorio actual, ejecutemos:
$ find . -type f
5. Buscar y eliminar
En algunas situaciones quieres buscar y borrar archivos / directorios que ya no son necesarios, puede ejecutar el comando de búsqueda con la opción ‘-delete’.
Por ejemplo, encontrar todas las imágenes con extensión * .png en la carpeta Documentos / y eliminarlas:
$ find /Documents -name *.png -delete
6. Busque archivos que tengan permisos específicos
Si desea buscar todos los archivos que tienen permiso específico, puede usar el comando de búsqueda de Linux con la opción ‘-perm’.
Por ejemplo, para encontrar archivos que tengan el permiso ‘755’, ejecutemos:
$ find . -type f -perm 775 -exec ls -l {} ;
7. Busque archivos y directorios por fecha / hora
El comando de búsqueda de Linux le permite buscar archivos y directorios por fecha / hora.
Puede usar el comando de búsqueda con la opción ‘-mtime -N’ para buscar archivos que se modificaron por última vez hace ‘N’ días. Por ejemplo, para buscar todos los archivos que se modificaron en los últimos 2 días en el directorio actual, ejecutemos:
$ find . -type f -mtime -2 -exec ls -l {} ;
Otra forma de usar el comando de búsqueda para buscar archivos / directorios por fecha / hora es usando la opción ‘-newerXY’. Donde X e Y pueden ser:
a
– la hora de acceso al archivo de referencia
B
– la hora de nacimiento del archivo de referencia
c
– el tiempo de cambio de estado del inodo del archivo de referencia
m
– la hora de modificación del archivo de referencia
t
– referirse se interpreta directamente como un tiempo
Por ejemplo, para buscar todos los archivos modificados el 4 de julio de 2020 en el directorio actual, ejecutemos:
$ find . -type f -newermt 2020-07-04 -ls
8. Busque archivos y directorios por tamaño
El comando de búsqueda de Linux le permite buscar archivos / directorios por tamaño ejecutando el comando con la opción ‘-size’.
Suponiendo que desea buscar archivos de más de 1 GB, puede ejecutar el siguiente comando:
$ find . -type f -size +1G
Algunos ejemplos prácticos
01) Encuentra archivos / directorios vacíos
Esta salida enumerará todos los archivos y carpetas vacíos en el directorio y subdirectorios actuales:
$ find . -empty -ls
02) Encuentra todos los archivos .jpg
$ find . -name *.jpg
03) Encuentra todos los directorios con permiso 644
La salida le muestra todas las carpetas en el directorio o subdirectorio actual que tienen el permiso 644:
$ find . -type d -perm 644 -ls
04) Encuentra archivos propiedad de un usuario específico
Si desea verificar todos los archivos propiedad del usuario «cas» en el directorio actual, puede hacerlo de la siguiente manera:
$ find . -user cas -ls
05) Buscar archivos por número de inodo
Para buscar un archivo por su número de inodo, puede usar buscar con -inum
opción. Por ejemplo:
$ find -inum 534937
06) Contar el número de archivos
$ find -type f -exec basename {} ; | wc -l
07) Contar el número de directorios
$ find -type d -exec basename {} ; | wc -l
08) Busca archivos con una profundidad particular
Suponiendo que desea buscar el archivo «Dockerfile» en la carpeta INICIO y sus subdirectorios y no en los subdirectorios del siguiente nivel, debe establecer la opción ‘-maxdepth’ en 2 de la siguiente manera:
$ find $HOME -maxdepth 2 -name Dockerfile
Conclusión
Otra herramienta poderosa es el comando fd, que es una alternativa al comando de búsqueda.
En este tutorial, aprendimos cómo usar el comando find de Linux para buscar archivos y directorios. Gracias por leer y deje su sugerencia en la sección de comentarios a continuación.