GNU/Linux >> Tutoriales Linux >  >> Linux

Buscar comando en Linux (Buscar archivos y directorios)

El find command es una de las herramientas más poderosas en el arsenal de los administradores de sistemas Linux. Busca archivos y directorios en una jerarquía de directorios basada en una expresión dada por el usuario y puede realizar acciones especificadas por el usuario en cada archivo coincidente.

Puedes usar el find Comando para buscar archivos y directorios según sus permisos, tipo, fecha, propiedad, tamaño y más. También se puede combinar con otras herramientas como grep o sed .

find Sintaxis del comando #

La sintaxis general para find El comando es el siguiente:

find [options] [path...] [expression]
  • Las options El atributo controla el tratamiento de los enlaces simbólicos, las opciones de depuración y el método de optimización.
  • La path... El atributo define el directorio o directorios de inicio donde find buscará los archivos.
  • La expression El atributo se compone de opciones, patrones de búsqueda y acciones separadas por operadores.

Para buscar archivos en un directorio, el usuario invoca el find el comando necesita tener permisos de lectura en ese directorio.

Echemos un vistazo al siguiente ejemplo:

find -L /var/www -name "*.js"
  • La opción -L (opciones) le dice al find comando para seguir enlaces simbólicos.
  • El /var/www (ruta…) especifica el directorio en el que se buscará.
  • El (expresión) -name "*.js le dice a find para buscar archivos que terminan en .js (archivos JavaScript).

Buscar archivos por nombre #

Buscar archivos por nombre es probablemente el uso más común de find dominio. Para encontrar un archivo por su nombre, use el -name opción seguida del nombre del archivo que está buscando.

Por ejemplo, para buscar un archivo llamado document.pdf en el /home/linuxize directorio, usaría el siguiente comando:

find /home/linuxize -type f -name document.pdf

Para ejecutar una búsqueda que no distinga entre mayúsculas y minúsculas, cambie el -name opción con -iname :

find /home/linuxize -type f -iname document.pdf

El comando anterior coincidirá con "Documento.pdf", "DOCUMENTO.pdf" ..etc.

Buscar archivos por número de extensión

Buscar archivos por extensión es lo mismo que buscar archivos por nombre. Por ejemplo, para encontrar todos los archivos que terminan en .log.gz dentro del /var/log/nginx directorio, escribiría:

find /var/log/nginx -type f -name '*.log.gz'

Es importante mencionar que debe citar el patrón o escapar del asterisco * símbolo con barra invertida \ para que el shell no lo interprete cuando use el carácter comodín.

Para encontrar todos los archivos que no coinciden con la expresión regular *.log.gz puedes usar el -not opción. Por ejemplo, para encontrar todos los archivos que no terminan en *.log.gz usarías:

find /var/log/nginx -type f -not -name '*.log.gz'

Buscar archivos por tipo #

A veces, es posible que deba buscar tipos de archivos específicos, como archivos normales, directorios o enlaces simbólicos. En Linux, todo es un archivo.

Para buscar archivos según su tipo, utilice el -type opción y uno de los siguientes descriptores para especificar el tipo de archivo:

  • f :un archivo normal
  • d :directorio
  • l :enlace simbólico
  • c :dispositivos de personajes
  • b :bloquear dispositivos
  • p :tubería con nombre (FIFO)
  • s :enchufe

Por ejemplo, para buscar todos los directorios en el directorio de trabajo actual, usaría:

find . -type d

El ejemplo común sería cambiar recursivamente los permisos del archivo del sitio web a 644 y permisos de directorio a 755 usando el chmod comando:

find /var/www/my_website -type d -exec chmod 0755 {} \;find /var/www/my_website -type f -exec chmod 0644 {} \;

Buscar archivos por número de tamaño

Para buscar archivos según el tamaño del archivo, pase el -size parámetro junto con los criterios de tamaño. Puede utilizar los siguientes sufijos para especificar el tamaño del archivo:

  • b :bloques de 512 bytes (predeterminado)
  • c :bytes
  • w :palabras de dos bytes
  • k :kilobytes
  • M :Megabytes
  • G :Gigabytes

El siguiente comando encontrará todos los archivos de exactamente 1024 bytes dentro del /tmp directorio:

find /tmp -type f -size 1024c

El find El comando también le permite buscar archivos que son mayores o menores que un tamaño especificado.

En el siguiente ejemplo, buscamos todos los archivos de menos de 1MB dentro del directorio de trabajo actual. Fíjate en el signo menos - símbolo antes del valor del tamaño:

find . -type f -size -1M

Si desea buscar archivos con un tamaño superior a 1MB , entonces necesitas usar el signo más + símbolo:

find . -type f -size +1M

Incluso puede buscar archivos dentro de un rango de tamaño. El siguiente comando encontrará todos los archivos entre 1 y 2MB :

find . -type f -size +1M -size 21M

Buscar archivos por fecha de modificación #

El find El comando también puede buscar archivos en función de su última modificación, acceso o cambio de hora.

Al igual que cuando busca por tamaño, use los símbolos más y menos para "mayor que" o "menor que".

Digamos que hace unos días, modificó uno de los archivos de configuración de dovecot, pero olvidó cuál. Puede filtrar fácilmente todos los archivos en /etc/dovecot/conf.d directorio que termina con .conf y ha sido modificado en los últimos cinco días:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Aquí hay otro ejemplo de filtrado de archivos basado en la fecha de modificación usando -daystart opción. El siguiente comando enumerará todos los archivos en /home directorio que fueron modificados 30 o hace más días:

find /home -mtime +30 -daystart

Buscar archivos por permisos #

El -perm La opción le permite buscar archivos en función de los permisos de archivo.

Por ejemplo, para encontrar todos los archivos con permisos de exactamente 775 dentro del /var/www/html directorio, usaría:

find /var/www/html -perm 644

Puede prefijar el modo numérico con menos - o barra inclinada / .

Cuando la barra / se usa como prefijo, entonces al menos una categoría (usuario, grupo u otros) debe tener al menos los bits respectivos configurados para que un archivo coincida.

Considere el siguiente comando de ejemplo:

find . -perm /444

El comando anterior hará coincidir todos los archivos con permisos de lectura establecidos para usuarios, grupos u otros.

Si menos - se usa como prefijo, entonces para que el archivo coincida, se deben configurar al menos los bits especificados. El siguiente comando buscará archivos que tengan permiso de lectura y escritura para el propietario y el grupo y que otros usuarios puedan leer:

find . -perm -664

Buscar archivos por número de propietario

Para buscar archivos propiedad de un usuario o grupo en particular, use el -user y -group opciones.

Por ejemplo, para buscar todos los archivos y directorios propiedad del usuario linuxize , ejecutarías:

find / -user linuxize

Aquí hay un ejemplo del mundo real. Digamos que desea encontrar todos los archivos propiedad del usuario www-data y cambie la propiedad de los archivos coincidentes de www-data a nginx :

find / -user www-data -type f  -exec chown nginx {} \;

Buscar y eliminar archivos #

Para eliminar todos los archivos coincidentes, agregue -delete opción al final de la expresión de coincidencia.

Asegúrese de utilizar esta opción solo cuando esté seguro de que el resultado coincide con los archivos que desea eliminar. Siempre es una buena idea imprimir los archivos coincidentes antes de usar -delete opción.

Por ejemplo, para eliminar todos los archivos que terminan en .temp desde el /var/log/ , usarías:

find /var/log/ -name `*.temp` -delete
Usa el -delete opción con extrema precaución. El find el comando se evalúa como una expresión y si agrega -delete primero, el comando eliminará todo lo que esté debajo de los puntos de inicio que especificó.

Cuando se trata de directorios, find solo puede eliminar directorios vacíos, igual que rmdir .

Conclusión #

Le hemos mostrado cómo usar el find Comando con varias opciones y criterios.

Este artículo debería brindarle una comprensión fundamental de cómo ubicar archivos en sus sistemas Linux. También puede visitar el find página del manual y lea sobre todas las demás opciones poderosas de find comando.

Si tiene alguna pregunta o comentario, deje un comentario a continuación.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Cómo encontrar los principales directorios y archivos (espacio en disco) en Linux

  3. Encuentra archivos y directorios en Linux como un profesional

  4. Cómo eliminar archivos y directorios en Linux desde la línea de comandos

  5. Encuentra los archivos y directorios más grandes en Linux

Cómo comprimir archivos y directorios en Linux

Cómo mover archivos y directorios en Linux (comando mv)

Comando Rm en Linux

3 formas de encontrar archivos y directorios en Linux

Encuentre archivos y directorios en Linux fácilmente

4 formas de transferir archivos y directorios en Linux