La búsqueda de archivos es relativamente fácil cuando se utiliza una GUI. Pero en ciertos entornos, como servidores sin GUI, debe buscar archivos usando la línea de comando.
Existe un poderoso comando en Linux que lo ayuda a buscar archivos y carpetas llamado find
. En este artículo, discutiremos el find
comando con algunos ejemplos.
¿Qué es el comando buscar en Linux?
El find
El comando le permite buscar de manera eficiente archivos, carpetas y dispositivos de caracteres y bloques.
A continuación se muestra la sintaxis básica de find
comando:
find /path/ -type f -name file-to-search
donde,
/path
es la ruta donde se espera encontrar el archivo. Este es el punto de partida para buscar archivos. La ruta también puede ser/
o.
que representan la raíz y el directorio actual, respectivamente.-type
representa los descriptores de archivo. Pueden ser cualquiera de los siguientes:
f
– Archivo normal como archivos de texto, imágenes y archivos ocultos.
d
– Directorio . Estas son las carpetas bajo consideración.
l
– Enlace simbólico . Los enlaces simbólicos apuntan a archivos y son similares a los accesos directos.
c
– Dispositivos de personajes . Los archivos que se utilizan para acceder a los dispositivos de caracteres se denominan archivos de dispositivos de caracteres. Los controladores se comunican con los dispositivos de caracteres enviando y recibiendo caracteres individuales (bytes, octetos). Los ejemplos incluyen teclados, tarjetas de sonido y mouse.
b
– Bloquear dispositivos . Los archivos que se utilizan para acceder a los dispositivos de bloques se denominan archivos de dispositivos de bloques. Los controladores se comunican con los dispositivos de bloques enviando y recibiendo bloques completos de datos. Los ejemplos incluyen USB, CD-ROM
-name
es el nombre del tipo de archivo que desea buscar.
Ejemplos del comando buscar
Ahora conocemos la sintaxis del find
comando, veamos algunos ejemplos.
Cómo buscar archivos por nombre o extensión
Supongamos que necesitamos encontrar archivos que contengan "estilo" en su nombre. Usaremos este comando:
find . -type f -name style*
Salida
Ahora digamos que queremos encontrar archivos con una extensión particular como .html
. Modificaremos el comando así:
find . -type f -name *.html
Salida
Cómo buscar archivos ocultos
Los archivos ocultos se representan con un punto al principio del nombre del archivo. Normalmente están ocultos, pero se pueden ver con ls -a
en el directorio actual.
Podemos modificar el find
comando como se muestra a continuación para buscar archivos ocultos.
find . -type f -name ".*"
Salida
Cómo buscar archivos de registro y archivos de configuración
Los archivos de registro suelen tener la extensión .log
, y podemos encontrarlos así:
find . -type f -name "*.log"
Salida
Del mismo modo, podemos buscar archivos de configuración como este:
find . -type f -name "*.conf"
Cómo buscar otros archivos por tipo
Podemos buscar archivos de bloques de caracteres proporcionando c
para -type
:
find / -type c
De manera similar, los archivos de bloqueo de dispositivos se pueden encontrar usando b
:
find / -type b
Cómo buscar directorios
En el siguiente ejemplo, encontramos las carpetas llamadas lib
. Tenga en cuenta que estamos usando -type d
.
find . -type d -name "lib*"
Salida
💡 Consejo:podemos identificar directorios mirando la d
bandera en la salida de ls -lrt
.
Cómo buscar archivos por tamaño
Un uso increíblemente útil de find
El comando es listar archivos basados en un tamaño particular.
find / -size +250MB
Otras unidades incluyen:
G
:Gigabytes.M
:megabytes.K
:kilobytesb
:bytes.
Simplemente reemplace
find <directory> -type f -size +N<Unit Type>
Cómo buscar archivos por tiempo de modificación
find /path -name "*.txt" -mtime -10
- -mtiempo +10 significa que está buscando un archivo modificado hace 10 días.
- -mtime -10 significa menos de 10 días.
- -mtime 10 Si omite + o – significa exactamente 10 días.
A continuación se muestra el contenido de mi directorio de inicio:
Apliquemos un ejemplo en mi directorio de inicio.
find . -type f -name ".*" -mtime +10
Ejemplos prácticos de find
con guiones bash
Podemos combinar find
con rm
o mv
para crear scripts de bash significativos que se puedan automatizar.
Digamos que queremos crear una secuencia de comandos que mueva los archivos de registro de más de 7 días a una ruta de respaldo. A partir de ahí, elimina los archivos de registro con más de 30 días de antigüedad. Podemos crear un script y programarlo con cron
. Puedes obtener más información sobre cron
trabajos aquí.
Veamos el guión:
#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*
# move ESB01 logs to backup
find /logs/esb01/audit -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;
# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30 -exec rm {} \;
Tenga en cuenta que estamos usando exec
con find
. Básicamente, exec
ejecuta el comando provisto ( mv
y rm
en nuestro caso). {}
es el marcador de posición que contiene los resultados del comando. Por último, proporcionamos el delimitador ;
. Como no queremos que el shell interprete el punto y coma, lo escapamos con \
.
El script compartido es muy útil para archivar y eliminar registros.
Resumiendo
En este artículo, hemos estudiado el find
comando en detalle y aprendió cómo buscar archivos por nombre, tipo, tamaño y tiempo de modificación.
Espero que este tutorial te haya resultado útil.
¡Comparte tus pensamientos en Twitter!
Puedes leer mis otras publicaciones aquí.
Recursos:imágenes de pancartas de ilustraciones de Office de Storyset y Canva.