Comando Linux find
Guía completa de comandos Linux
El comando Linux find se utiliza para buscar archivos y directorios en un directorio especificado.
Puede usar diferentes opciones para filtrar y limitar los resultados de la búsqueda.
Sintaxis
find [路径] [匹配条件] [动作]
Descripción de parámetros :
RutaEs la ruta del directorio a buscar; puede ser un directorio o un nombre de archivo, también pueden ser varias rutas separadas por espacios. Si no se especifica una ruta, por defecto es el directorio actual.
expressionEs un parámetro opcional que se utiliza para especificar las condiciones de búsqueda; puede ser nombre de archivo, tipo de archivo, tamaño de archivo, etc.
Hay alrededor de veinte a treinta opciones disponibles en las condiciones de coincidencia; a continuación se enumeran las más comunes:
-name pattern: buscar por nombre de archivo, admite el uso de comodines*y?。-type type: buscar por tipo de archivo, puede serf(archivo normal),d(directorio),l(enlace simbólico), etc.-size [+-]size[cwbkMG]: buscar por tamaño de archivo, admite el uso de+o-indica mayor o menor que el tamaño especificado; la unidad puede serc(byte),w(número de palabras),b(número de bloques),k(KB)、M(MB) oG(GB)。-mtime days: buscar por tiempo de modificación, admite el uso de+o-indica antes o después del número de días especificado; days es un entero que representa el número de días.-user username: buscar por propietario del archivo.-group groupname: buscar por grupo del archivo.
Acción:Opcional, se usa para ejecutar operaciones en los archivos coincidentes, como eliminar, copiar, etc.
Los parámetros relacionados con el tiempo en el comando find son los siguientes:
-
-amin n: buscar archivos que fueron accedidos en n minutos. -
-atime n: buscar archivos que fueron accedidos en n*24 horas. -
-cmin n: buscar archivos cuyo estado cambió en n minutos (por ejemplo, permisos). -
-ctime n: buscar archivos cuyo estado cambió en n*24 horas (por ejemplo, permisos). -
-mmin n: buscar archivos que fueron modificados en n minutos. -
-mtime n: buscar archivos que fueron modificados en n*24 horas.
En estos parámetros, n puede ser un número positivo, negativo o cero. Un número positivo indica archivos modificados o accedidos dentro del tiempo especificado; un número negativo indica archivos modificados o accedidos antes del tiempo especificado; cero indica archivos modificados o accedidos en el punto de tiempo actual.
Los números positivos deberían indicar antes del tiempo, y los negativos dentro del tiempo.
Por ejemplo:-mtime 0indica buscar archivos modificados hoy,-mtime -7indica buscar archivos modificados hace una semana.
Explicación sobre el parámetro de tiempo n:
+n: buscar archivos o directorios más antiguos que n días.
-
-n: buscar archivos o directorios cuyos atributos cambiaron dentro de n días.
-
n: buscar archivos o directorios cuyos atributos cambiaron hace n días (en ese día específico).
Ejemplos
Buscar el archivo llamado file.txt en el directorio actual:
find . -name file.txt
Listar todos los archivos con el sufijo.cen el directorio actual y sus subdirectorios:
# find . -name "*.c"
Listar todos los archivos en el directorio actual y sus subdirectorios:
# find . -type f
Buscar archivos mayores de 1MB en el directorio /home:
find /home -size +1M
Buscar archivos modificados hace 7 días en el directorio /var/log:
find /var/log -mtime +7
Buscar archivos accedidos en los últimos 7 días:
find /path/to/search -atime -7
Buscar archivos y directorios cuyo estado haya cambiado en los últimos 20 días en el directorio actual:
# find . -ctime 20
Listar todos los archivos actualizados hace 20 días o más en el directorio actual y sus subdirectorios:
# find . -ctime +20
Buscar archivos normales en el directorio /var/log cuya hora de modificación sea anterior a 7 días y preguntar antes de eliminarlos:
# find /var/log -type f -mtime +7 -ok rm {} \;
Buscar archivos en el directorio actual cuyo propietario tenga permisos de lectura y escritura, y los usuarios del grupo y otros usuarios tengan permiso de lectura:
# find . -type f -perm 644 -exec ls -l {} \;
Buscar todos los archivos normales de longitud 0 en el sistema y listar sus rutas completas:
# find / -type f -size 0 -exec ls -l {} \;
Encontrar y ejecutar una operación (por ejemplo, eliminar):
find /path/to/search -name "pattern" -exec rm {} \;
En este ejemplo,-execla opción te permite ejecutar un comando,{}será reemplazado por el nombre del archivo coincidente,\;indica el final del comando.
Otras extensiones