GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo buscar archivos desde la línea de comandos de Linux

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:

fArchivo normal como archivos de texto, imágenes y archivos ocultos.

dDirectorio . Estas son las carpetas bajo consideración.

lEnlace simbólico . Los enlaces simbólicos apuntan a archivos y son similares a los accesos directos.

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

bBloquear 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 :kilobytes
  • b :bytes.

Simplemente reemplace con la unidad correspondiente.

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.


Linux
  1. 8 consejos para la línea de comandos de Linux

  2. Cómo instalar software desde la línea de comandos de Linux

  3. Búsqueda de archivos en la línea de comandos (instrucciones)

  4. Cómo encontrar archivos en CentOS 8 en la línea de comandos

  5. ¿Cómo puedo copiar una carpeta desde la línea de comandos de Linux?

Cómo averiguar la dirección IP pública desde la línea de comandos en Linux

Cómo administrar archivos desde la terminal de Linux

Cómo encontrar archivos en la línea de comandos de Ubuntu

Ripgrep:la herramienta de búsqueda de línea de comandos más rápida para Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo encontrar la dirección IP en la línea de comandos de Linux