El Linux find
command es uno de los comandos más importantes y útiles en los sistemas Linux. Puede, como su nombre indica, encontrar archivos en su PC con Linux basándose en prácticamente cualquier condición y variable que establezca. Puede buscar archivos por permisos, usuarios, grupos, tipo de archivo, fecha, tamaño y otros criterios posibles utilizando el find
mando.
los find
El comando está disponible en la mayoría de las distribuciones de Linux de forma predeterminada, por lo que no tiene que instalar un paquete para él.
En este tutorial, le mostraremos cómo encontrar archivos en Linux utilizando varias combinaciones comunes de expresiones de búsqueda en la línea de comandos.
Buscar archivos por nombre en directorios actuales
La forma más obvia de buscar archivos es por nombre. Para buscar un archivo por nombre en el directorio actual, ejecute:
find . -name photo.png
Si desea buscar un archivo por nombre que contenga letras mayúsculas y minúsculas, ejecute:
find . -iname photo.png
Si desea encontrar un archivo en el directorio raíz, anteponga su búsqueda con sudo
que le dará todos los permisos necesarios para hacerlo, y también el símbolo ‘/’ que le dice a Linux que busque en el directorio raíz. Finalmente, el -print
expresión muestra los directorios de los resultados de su búsqueda. Si estuviera buscando Gzip, escribiría:
sudo find / -name gzip -print
Buscar archivos en un directorio específico
Si desea buscar archivos en un directorio específico como «/ home», ejecute:
find /home -name filename.txt
Si desea buscar archivos con la extensión «.txt» en el directorio «/ home», ejecute:
find /home -name *.txt
Para buscar archivos cuyo nombre es «test.txt» en varios directorios como «/ home» y «/ opt», ejecute:
find /home /opt -name test.txt
Para encontrar archivos ocultos en el directorio «/ home», ejecute:
find /home -name ".*"
Para encontrar un solo archivo llamado «test.txt» y eliminarlo, ejecute:
find /home -type f -name test.txt -exec rm -f {}
Para encontrar todos los archivos vacíos en el directorio «/ opt», ejecute:
find /opt -type f -empty
Buscar directorios usando el nombre
Si desea encontrar todos los directorios cuyo nombre es «testdir» en el directorio «/ home», ejecute:
find /home -type d -name testdir
Para archivar todos los directorios vacíos en «/ home», ejecute:
find /home -type d -empty
Buscar archivos con ciertos permisos
los find
El comando se puede usar para buscar archivos con un permiso específico usando el perm
opción.
Para encontrar todos los archivos cuyos permisos son «777» en el directorio «/ home», ejecute:
find /home -type f -perm 0777 -print
Para encontrar todos los archivos sin el permiso «777», ejecute:
find . -type f ! -perm 777
Para buscar todos los archivos de solo lectura, ejecute:
find /home -perm /u=r
Para encontrar todos los archivos ejecutables, ejecute:
find /home -perm /a=x
Para encontrar todos los archivos de conjuntos de bits adhesivos cuyos permisos son «553», ejecute:
find /home -perm 1553
Para encontrar todos los archivos de conjuntos SUID, ejecute:
find /home -perm /u=s
Para buscar todos los archivos cuyos permisos son «777» y cambiar sus permisos a «700», ejecute:
find /home -type f -perm 0777 -print -exec chmod 700 {} ;
Busque archivos y directorios según la fecha y la hora
Para encontrar todos los archivos en «/ opt» que se modificaron veinte días antes, ejecute:
find /opt -mtime 20
Para encontrar todos los archivos en «/ opt» a los que se accedió veinte días antes, ejecute:
find /opt -atime 20
Para encontrar todos los archivos en «/ opt» que se modificaron más de treinta días antes y menos de cincuenta días después:
find /opt -mtime +30 -mtime -50
Para encontrar todos los archivos en «/ opt» que se cambiaron en las últimas dos horas, ejecute:
find /opt -cmin -120
Buscar archivos y directorios según el tamaño
Para encontrar todos los archivos de 10 MB en el directorio «/ home», ejecute:
find /home -size 10M
Para encontrar todos los archivos en el directorio «/ home» que tengan más de 10 MB y menos de 50 MB, ejecute:
find /home -size +10M -size -50M
Para encontrar todos los archivos «.mp4» en el directorio «/ home» con más de 10 MB y eliminarlos con un solo comando, ejecute:
find /home -type f -name *.mp4 -size +10M -exec rm {} ;
Conclusión
Y ahí está: una lista completa de formas de encontrar cualquier archivo que esté buscando en Linux. Puede que no sea tan simple como la búsqueda rudimentaria de Windows, pero es mucho más detallada y específica. ¿Hay algún comando aquí que nos perdimos? ¡Háznoslo saber en los comentarios!