Cargando

Ir a contenido


 


Cómo buscar y encontrar archivos en Linux con comandos

En este tutorial te explicamos los diferentes comandos que debes usar en Linux para buscar y encontrar diferentes archivos.


Escrito por el oct 05 2017 09:48 linux



A menudo es necesario buscar ciertos tipos de archivos en ambientes Linux y no sabemos la forma correcta de buscarlos adecuadamente sin dar muchas vueltas perdiendo tiempo.

 

Para distros Linux, se ha desarrollado un comando llamado find el cual ha sido desarrollado para filtrar recursivamente objetos en el sistema de archivos tomando como base un mecanismo condicional. Con este comando find podremos buscar un archivo o directorio en su sistema de archivos.

 

Si incluimos el parámetro -exec, los archivos pueden ser encontrados y procesados inmediatamente dentro del mismo comando.

 

 


1. Encontrar archivos por nombre o extensión comandos Linux


Podremos usar find desde la línea de comandos para localizar un archivo específico por nombre o extensión.

 

Su sintaxis es:

find /home/username/ -name "*.extensión"
Por ejemplo, buscaremos archivos terminados en .gz:

 

 

 


2. Comandos y sintaxis prácticas para usar con find comandos Linux


Con el comando find tenemos algunas opciones de parámetros como:
find opciones inicio / ruta expresión
El atributo opciones controlará el comportamiento y el método de optimización del proceso de búsqueda. El atributo inicio / ruta definirá el directorio de nivel superior en el que find iniciará el filtrado.

 

El atributo expresión controla las pruebas que buscan en la jerarquía de directorios para producir salida.
Por ejemplo, podemos ejecutar lo siguiente:

find -O3 -L /var/www/ -name "*.html"
Este comando habilita el nivel máximo de optimización (-O3) y permite seguir los enlaces simbólicos (-L) para buscar en el árbol de directorio completo en la ruta /var/www/ para los archivos que terminan con .html.

 

 

 


3. Opciones y optimización con Find comandos Linux


La configuración por defecto de Find para buscar ignorará los enlaces simbólicos (archivos de acceso directo), si deseamos que find siga y tome los enlaces simbólicos, podremos agregar la opción -L al comando como vimos anteriormente. Find cuenta con tres (3) niveles de optimización que son -O1, -O2 y -O3.

 

La optimización -O1 es la predeterminada y obliga a buscar para filtrar basado en nombre de archivo antes de ejecutar todas las otras pruebas.

 

La optimización en el nivel -O2 da prioridad a los filtros de nombre de archivo, como en -O1 y, a continuación, ejecuta todo el filtrado de tipo de archivo antes de continuar con otras condiciones más intensivas en recursos. La optimización de nivel -O3 permite a find realizar una optimización más profunda y reordena todas las pruebas en función de su gasto relativo y la probabilidad de mejores resultados.

 

Algunas de las opciones son:

 

Es un filtro basado en el primer nombre de archivo
-O1 (Predeterminado)

 

Usa primero el nombre de archivo y luego el tipo de archivo
-O2

 

Reordenar resultados
Permite que al buscar se reordene automáticamente la búsqueda basada en el uso eficiente de los recursos y la probabilidad de mejores resultados.
-O3

 

Busca en el directorio actual, así como todos los subdirectorios a X niveles de profundidad
-maxdepth X

 

Busca sin tener en cuenta el caso de texto
-iname

 

Devuelve sólo los resultados que no coinciden con el caso de prueba
-not

 

Realiza una búsqueda de archivos
-type f

 

Busca directorios
-type d

 


4. Encontrar archivos por modificación de tiempo comandos Linux


El comando find tiene la capacidad de filtrar una jerarquía de directorios basada en la última modificación del archivo.
Las sintaxis son:
find / -name "*conf" -mtime 8
find /home/user/ -name "*conf" -mtime 2
El primer comando desplegara una lista de todos los archivos de todo el sistema de archivos que terminan con los caracteres conf y han sido modificados en los últimos 8 días. El segundo comando filtra el directorio de inicio del usuario para los archivos con nombres que terminan con los caracteres conf y se han modificado en los 2 días anteriores.

 

Usar Grep para encontrar archivos basados en contenido comandos Linux
El comando find sólo puede filtrar la jerarquía de directorios basándose en el nombre de un archivo y los metadatos, por ello, si es necesario buscar en base al contenido del archivo, utilice una herramienta como grep.

 

Usaremos la siguiente sintaxis:

find . -type f -exec grep "ejemplo" '{}' \; -print
Esto busca todos los objetos de la jerarquía de directorios actual (.) el cual es un archivo (-tipo f) y luego se ejecuta el comando grep "ejemplo" para cada archivo que cumpla con las condiciones. Los archivos que coinciden se imprimen en la pantalla (-print). Las llaves ({}) son un marcador de posición para los resultados del resultado de búsqueda. El {} está encerrado entre comillas simples (') para evitar entregar grep un nombre de archivo mal formado. El comando -exec se termina con un punto y coma "( ; )", que debe escaparse "( \ ; )" para evitar la interpretación por el intérprete de comandos.

 

Cómo buscar y procesar archivos mediante el comando Find comandos Linux
Podemos usar la opción -exec para ejecutar comandos contra todos los objetos que coinciden con la expresión de búsqueda.

 

Su sintaxis es:

find . -name "rc.conf" -exec chmod o+r '{}' \;
Esto filtrará todos los objetos de la jerarquía actual (.) para los archivos denominados rc.conf y ejecutará el comando chmod o + r para modificar los permisos de los resultados de búsqueda.

 

Así find es un aliado para la búsqueda completa de archivos en Linux.

 

Te explicamos qué son y cómo usar los comandos GZIP, GUNZIP y ZCAT en Linux para comprimir y descomprimir archivos.


Tutoriales Relacionados


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado oct 05 2017 09:48
  •   Visitas 2.2K
  •   Nivel
    Avanzado