El comando “find” es una herramienta del sistema operativo Linux que te permite buscar archivos y directorios según diferentes criterios. Vamos a ver algunos ejemplos prácticos que pueden resultarnos útiles.
Buscar archivo por nombre
El uso más común del comando “find” es buscar archivos y directorios por su nombre. Por ejemplo si queremos buscar un archivo con extensión “.txt” en el directorio actual y subdirectorios, se puede ejecutar el siguiente comando:
find . -name "*.txt"
Ejemplo de resultado:
./documents/file1.txt
./documents/file2.txt
./pictures/notes.txt
Este comando buscará todos los archivos con extensión “.txt” y mostrará los resultados con su ruta relativa.
Si nos acordamos una parte del nombre del archivo, podemos utilizarlo para restringir la búsqueda. Por ejemplo si sabemos que el archivo que buscamos contiene la palabra “file”, podemos realizar la siguiente búsqueda:
find . -name "*file*.txt"
Ejemplo de resultado:
./documents/file1.txt
./documents/file2.txt
Búsqueda por tipo de archivo
Además de buscar por nombre, “find” te permite buscar archivos por su tipo. Por ejemplo, si deseas encontrar todos los archivos de tipo “documento” en tu sistema, puedes utilizar la siguiente comando:
find / -type f -name "*.odt" -o -name "*.pdf"
Ejemplo de resultado:
/home/usuario/documentos/reporte.odt
/home/usuario/documentos/manual.pdf
Este comando buscará todos los archivos con extensión “.odt” o “.pdf” en todo el sistema.
Búsqueda por tamaño de archivo
El comando “find” puede utilizarse también si necesitas encontrar archivos que cumplan con ciertas restricciones de tamaño Por ejemplo, si buscamos los archivos que sean más grandes que 1 MB en un directorio específico, puedes ejecutar el siguiente comando:
find /path/al/directorio -size +1M
Ejemplo de resultado:
/path/al/directorio/archivo1.jpg
/path/al/directorio/video2.mp4
Este comando buscará todos los archivos que tengan un tamaño mayor a 1 MB en el directorio especificado.
Búsqueda y ejecución de comandos en archivos encontrados
Una característica del comando “find” es la capacidad de realizar acciones en los archivos encontrados. Por ejemplo, si deseas buscar todos los archivos con extensión “.log” y borrarlos, se puede combinar “find” con el comando “rm” de la siguiente manera:
find /path/al/directorio -name "*.log" -exec rm -v {} \;
Ejemplo de resultado:
'/path/al/directorio/log1.log' borrado
'/path/al/directorio/log2.log' borrado
Este comando buscará todos los archivos con extensión “.log” en el directorio especificado y ejecutará el comando “rm” para borrarlos.