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

Función de búsqueda

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

Encontrar foto

Si deseas encontrar un archivo por nombre que contenga tanto letras mayúsculas como minúsculas, ejecuta:

find . -iname photo.png

Encontrar foto iname

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

Encontrar Gzip

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.txt

Si 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.txt

Para 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 -empty

Encontrar directorios usando el nombre

Si deseas encontrar todos los directorios cuyo nombre sea “testdir” en el directorio “/home”, ejecuta:

find/home -type d -name testdir

Para encontrar todos los directorios vacíos en “/home”, ejecuta:

find/home -type d -empty

Encontrar 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 -print

Para encontrar todos los archivos sin permiso “777”, ejecuta:

find . -type f !-perm777

Para encontrar todos los archivos de solo lectura, ejecuta:

find/home -perm/u=r

Para encontrar todos los archivos ejecutables, ejecuta:

find/home -perm/a=x

Para encontrar todos los archivos con el bit pegajoso establecido cuyos permisos son “553”, ejecuta:

find/home -perm1553

Para encontrar todos los archivos SUID establecidos, ejecuta:

find/home -perm/u=s

Para 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 -mtime20

Para encontrar todos los archivos en “/opt” que fueron accedidos hace veinte días, ejecuta:

find/opt -atime20

Para 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-50

Para encontrar todos los archivos en “/opt” que fueron cambiados en las últimas dos horas, ejecuta:

find/opt -cmin-120

Encontrar archivos y directorios según el tamaño

Para encontrar todos los archivos de 10MB en el directorio “/home”, ejecuta:

find/home -size 10M

Para encontrar todos los archivos en el directorio “/home” que son mayores de 10MB y menores de 50MB, ejecuta:

find/home -size +10M -size-50M

Para 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.