Cómo encontrar un archivo en Linux usando el comando Find

El comando find de Linux es uno de los comandos más importantes y útiles en los sistemas Linux. Puede, como su nombre indica, encontrar archivos en tu PC con Linux basándose en prácticamente cualquier condición y variable que establezcas. Puedes encontrar archivos por permisos, usuarios, grupos, tipo de archivo, fecha, tamaño y otros posibles criterios utilizando el comando find. Aquí te mostramos cómo encontrar un archivo en Linux usando el comando find.
El comando find está disponible en la mayoría de las distribuciones de Linux por defecto, por lo que no tienes que instalar un paquete para ello.
También lee: Usando los comandos find, locate, which y whereis para buscar archivos en Linux
Encontrar archivos por nombre en los directorios actuales
La forma más obvia de buscar archivos es por nombre. Para encontrar un archivo por nombre en el directorio actual, ejecuta:
find . -name photo.png
Si deseas encontrar un archivo por nombre que contenga tanto letras mayúsculas como minúsculas, ejecuta:
find . -iname photo.png
Si deseas encontrar un archivo en el directorio raíz, precede tu búsqueda con sudo, que te dará todos los permisos necesarios para hacerlo, y también el símbolo /, que le indica a Linux que busque en el directorio raíz. Finalmente, la expresión -print muestra los directorios de tus resultados de búsqueda. Si estabas buscando Gzip, escribirías:
sudofind/-namegzip-print
También lee: Cómo encontrar archivos grandes en Linux
Encontrar archivos en un directorio específico
Si deseas encontrar archivos en un directorio específico como “/home”, ejecuta:
find/home -name filename.txtSi deseas encontrar archivos con la extensión “.txt” en el directorio “/home”, ejecuta:
find/home -name"*.txt"Para encontrar archivos cuyo nombre sea “test.txt” en múltiples directorios como “/home” y “/opt”, ejecuta:
find/home /opt -name test.txtPara encontrar archivos ocultos en el directorio “/home”, ejecuta:
find/home -name".*"Para encontrar un solo archivo llamado “test.txt” y eliminarlo, ejecuta:
find/home -type f -name test.txt -execrm-f{}Para encontrar todos los archivos vacíos en el directorio “/opt”, ejecuta:
find/opt -type f -emptyEncontrar directorios usando el nombre
Si deseas encontrar todos los directorios cuyo nombre sea “testdir” en el directorio “/home”, ejecuta:
find/home -type d -name testdirPara encontrar todos los directorios vacíos en “/home”, ejecuta:
find/home -type d -emptyEncontrar archivos con ciertos permisos
El comando find se puede usar para encontrar archivos con un permiso específico utilizando la opción perm.
Para encontrar todos los archivos cuyos permisos son “777” en el directorio “/home”, ejecuta:
find/home -type f -perm 0777 -printPara encontrar todos los archivos sin permiso “777”, ejecuta:
find . -type f !-perm777Para encontrar todos los archivos de solo lectura, ejecuta:
find/home -perm/u=rPara encontrar todos los archivos ejecutables, ejecuta:
find/home -perm/a=xPara encontrar todos los archivos con el bit pegajoso establecido cuyos permisos son “553”, ejecuta:
find/home -perm1553Para encontrar todos los archivos SUID establecidos, ejecuta:
find/home -perm/u=sPara encontrar todos los archivos cuyos permisos son “777” y cambiar sus permisos a “700”, ejecuta:
find/home -type f -perm 0777 -print-execchmod700{} ;Encontrar archivos y directorios según la fecha y hora
Para encontrar todos los archivos en “/opt” que fueron modificados hace 20 días, ejecuta:
find/opt -mtime20Para encontrar todos los archivos en “/opt” que fueron accedidos hace veinte días, ejecuta:
find/opt -atime20Para encontrar todos los archivos en “/opt” que fueron modificados hace más de 30 días y menos de 50 días después:
find/opt -mtime +30-mtime-50Para encontrar todos los archivos en “/opt” que fueron cambiados en las últimas dos horas, ejecuta:
find/opt -cmin-120Encontrar archivos y directorios según el tamaño
Para encontrar todos los archivos de 10MB en el directorio “/home”, ejecuta:
find/home -size 10MPara encontrar todos los archivos en el directorio “/home” que son mayores de 10MB y menores de 50MB, ejecuta:
find/home -size +10M -size-50MPara encontrar todos los archivos “.mp4” en el directorio “/home” con más de 10MB y eliminarlos usando un solo comando, ejecuta:
find/home -type f -name*.mp4 -size +10M -execrm{} ;Como puedes ver, el comando find es increíblemente útil para administrar un sistema, buscar en directorios para encontrar archivos y, en general, podar el árbol de directorios virtual en Linux. Si disfrutaste este artículo de Linux, asegúrate de revisar algunos de nuestros otros contenidos de Linux, como cómo usar el comando scp para transferir archivos de forma segura, cómo usar nnn como un administrador de archivos en la terminal y cómo arreglar paquetes rotos.