40 mejores ejemplos de comando Find en Linux

El comando Linux find es una poderosa herramienta que permite a los administradores de sistemas localizar y administrar archivos y directorios basados en una amplia gama de criterios de búsqueda. Puede encontrar directorios y archivos por su nombre, su tipo o extensión,tamaño, permisos, etc.

además de localizar archivos y directorios, combinar el comando find con otros le permite tomar medidas sobre los resultados., Agregar la opción -exec permite a los administradores de sistemas ejecutar comandos externos y realizar acciones como copiar, mover, eliminar o cambiar los permisos de los archivos que coincidan con los criterios especificados, como Tamaño, Nombre, etc.

en este artículo, comenzaremos explicando los comandos básicos de Linux find con ejemplos. Esto le mostrará cómo encontrar archivos y directorios. Luego le mostraremos cómo usar la opción -exec para actuar sobre los archivos o directorios en función de su tamaño, permisos, etc.,

la sintaxis general para el comando find es

find {path} {name -of-file or dir-to-search} {action-to-take}

donde,

en este tutorial, explicaremos cómo localizar archivos y directorios que coincidan con patrones especificados. También veremos cómo realizar acciones sobre los archivos o directorios que localiza el comando find. La guía está basada en Ubuntu pero es aplicable a la mayoría de las distribuciones y versiones de Linux.

Buscar archivos y Directorios

Buscar archivos específicos por nombre o extensión

para buscar un archivo específico, ejecute el siguiente comando desde el directorio raíz (/)., El comando contiene el nombre exacto del archivo que está buscando.

find . -name file22.txt

Output

./test/file22.txt./sales/file22.txt

tenga en cuenta que los resultados incluyen la ruta. Esto es importante si no conoce el directorio donde se encuentra el archivo, o cuando está en más de un lugar.

también puede buscar el archivo en otro directorio mientras esté en la ubicación actual. En este caso, debe proporcionar la ruta del directorio donde desea buscar.,

find ./test -name file22.txt

buscando archivos específicos en otro directorio

en nuestro caso, buscaremos todos los que comiencen con el archivo de letras en el directorio de prueba.

find ./test -name file*

Salida

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Buscar archivos por extensión

Para encontrar un archivo en Linux con una extensión determinada, agregar el comando.,

find . -name *.txt

Salida

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Buscar archivos y directorios por nombre

Utilice el comando siguiente para buscar archivos y directorios que comienzan con las letras qa. En nuestro equipo, tenemos la etiqueta qatree.txt y qa.txt así como archivos de un directorio con el nombre qa.,

Si ejecutamos el comando;

find ./ -name "qa*"

devuelve la siguiente salida

./test/qatree.pdf./test/qa.txt./home/qa

El comando devuelve los archivos y directorios de la coincidencia de los criterios de búsqueda. Para buscar solo archivos o directorios, debe especificar esto en el comando.

buscar archivos o directorios solamente

para los archivos Solamente, utilice el interruptor type f.

sólo los Archivos

find ./ -type f -name "qa*"

Salida

./test/qatree.pdf./test/qa.txt

sólo Directorios

Añadir la etiqueta type d opción para localizar los directorios sólo.,

find ./ -type d -name "qa*"

salida

./home/qa

comando de búsqueda insensible a mayúsculas

todas las búsquedas con -name el interruptor distingue entre mayúsculas y minúsculas y no dará resultados con mayúsculas. Para obtener todos los casos, utilice la opción -iname.

find ./ -iname "qa*"

Output

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

buscar un archivo de varios directorios

para encontrar los archivos en diferentes directorios, agregue sus rutas en el comando., En nuestro caso, comprobaremos los directorios test y numeric.

find ./test ./numeric -name file22.txt -type f

Salida

./test/file22.txt/root/numeric/file22.txt

Buscar varios archivos con diferentes extensiones de todos los directorios

puede utilizar el comando buscar para localizar los archivos múltiples que comparten las diferentes extensiones tales como *.doc, *.txt *.pdf, etc. Esto se puede hacer por separado, una extensión a la vez, o usando solo un comando que incluya todas las extensiones deseadas.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

output

buscar archivos que contienen cierto texto

a veces, desea acceder a un archivo que contiene cierto texto, pero no puede recuperar su nombre de archivo o ubicación. Este comando le permite encontrar todos los archivos que contienen el texto de destino.

para buscar todos los archivos que contienen la palabra hiperconvergencia», use;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Output

/root/numeric/hci/root/HCIP

la opción –I permite que el comando ignore los casos y encontrará el texto en mayúscula o no, es decir , hiperconvergencia, hiperconvergencia, etc.,

para buscar los archivos en un directorio específico, simplemente agréguelo al comando

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Output

./numeric/hci

buscar archivos y directorios basados en el tamaño

puede encontrar todos los archivos o directorios que son más pequeños, iguales o mayores que un cierto tamaño, dentro de un cierto rango o vacíos. Utilice el formato de tamaño adecuado dependiendo del tipo de archivos o directorios que esté buscando.,ND archivos de un cierto tamaño – igual a 30MB

para buscar encontrar todos los archivos de 30MB

find / -size 30M

buscar archivos más grandes que un tamaño especificado

find -size +2M

salida

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

buscar archivos de menos de 10MB en el directorio actual

find . -type f -size -10M

buscar archivos con tamaños entre 100-200MB

al buscar archivos dentro de un rango específico, como entre 100 y 200 MB

find / -size +100M -size -200M

buscar directorios más grandes que 20KB

find / -type d -size +20k

buscar archivos y directorios vacíos.,

Archivos

find ./ -type f -size 0

o

find ./ -type f –empty

Directorios

find ./ -type d –empty

Buscar archivos por la edad o el tiempo de modificación

Buscar archivos de más de n días

find /path/ -type f -name '*.txt' -mtime +8

El -mtime +8 buscará txt archivos que son mayores de 8 días.,

por fecha de modificación

esto buscará archivos modificados dentro de las últimas 17 horas

find . -mtime -17 -type f 

busca directorios modificados dentro de los últimos 10 días

find . -mtime -10 -type d 

buscar archivos basados en el acceso o modificación

buscar archivos basados en la fecha u hora de acceso. Esto le permite ver los archivos a los que se ha accedido o no dentro de un período especificado.

para ver los archivos a los que no se ha accedido en los últimos 10 días en el directorio principal.,

find /home -atime +10

los Archivos de acceder a exactamente 10 días

find /home -atime 10

Accedido en los últimos 10 días

find /home -atime -10

Buscar archivos modificados dentro de los últimos n días

también puede buscar los archivos en el /home directorio modificado en los últimos 10 días, utilizando el comando;

find /home -mtime -10 

Buscar archivos modificados dentro de un período específico.

por ejemplo, todos los archivos modificados entre 6 y 15 días atrás en el directorio home.,

find /home -type f -mtime +6 -mtime -15

acceso a Archivos y directorios en los últimos 10 minutos

Para encontrar los archivos visitado en los últimos 10 minutos, utilice el -amin opción.

find . -amin -10 -type f

Salida

./.bash_history./.profileroot@ubuntu1804:~#

Directorios visitado en los últimos 10 minutos

find . -amin -10 -type d

Encontrar los archivos correspondientes a permisos específicos

la Sintaxis

$ find -perm mode

Cuando el modo es el permiso que se numéricos tales como 644, 655, 700, 777, etc, o letras como u=x, a=r+x, etc.,

Puede especificar el modo de las siguientes tres maneras diferentes.

  1. Sin prefijo cuando desea encontrar archivos con los permisos exactos especificados.
  2. With «- » for files with at least the specified permission. Esto devuelve archivos con los permisos especificados, así como permisos adicionales superiores.
  3. Usar «/ » requiere especificar el propietario o grupo con el permiso para el archivo.,

buscar archivos con permiso 777

find -perm 777

salida

./file1

buscar archivos con al menos 766
find-perm -766

output

./file2./file1

el comando busca todos los archivos en los que

  • el propietario del archivo tiene permisos de lectura/escritura/ejecución.
  • Grupo tiene permisos de lectura/escritura
  • Otros tienen permiso de lectura/escritura

Como tal, devuelve dos archivos que cumplen con este criterio archivo1 y archivo2., Los archivos no necesitan tener los permisos exactos 766 y pueden tener permisos adicionales, pero deben tener al menos los especificados.

buscar archivos editables por el propietario

ahora usaremos el «/ » para buscar archivos editables por su propietario, grupo u otros.

find -perm /222../file2./file3./file1

El anterior busca los archivos que son modificables por su propietario o grupo.
esto devuelve archivos que son escribibles por cualquiera pero no necesariamente por ambos. Para ver los archivos, donde ambos tienen permisos de escritura, use el prefijo -.,

./file2./file1

buscar archivos propiedad de un usuario

buscar todos los archivos propiedad de Jack

find /home -user jack

Output

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

buscar archivos específicos propiedad de un usuario

buscar todos los archivos de texto propiedad de Jack

find /home -user jack -iname "*.txt"

output

/home/jack/docs/file32.txt

buscar y listar archivos y directorios junto con sus permisos

find -name "*.conf" | ls -l

output

buscar y actuar sobre los resultados

en en esta sección, veremos cómo puede actuar sobre los archivos que coinciden con el patrón especificado en el comando find.,

buscar archivos y cambiar permisos

buscar y cambiar permisos de ciertos tipos de archivos. En nuestro caso, trabajaremos con archivos PHP con diferentes permisos como se muestra a continuación.,

ahora vamos a buscar todos los archivos PHP (arriba) y reemplazar sus permisos con 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

El comando busca de archivos PHP en el ver directorio y, a continuación, establece su permiso para 755 (rwxr-xr-x)

Resultados

Buscar y cambiar permisos de archivos y directorios

Buscar archivos con permisos 644 y el cambio que ellos han 655 permisos

find . -type f -perm 644 -exec chmod 655 {} ;

también puede buscar directorios con permisos 644 y reemplazar esto con 755.,

find . -type d -perm 644

Salida

./docs 

La carpeta docs tiene permisos 644

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

establecer A 755, corremos

find . -type d -perm 644 -exec chmod 755 {} ;

Ahora podemos comprobar de nuevo para ver exactamente qué 755

find . -type d -perm 755

Salida
.
./docs

desde arriba podemos ver que los directorios root y docs tienen los permisos 755.,

Ls –la comando da los siguientes detalles

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Buscar y copiar archivos o directorios

Encontrar y copiar un archivo específico para un directorio

El comando de abajo se encuentra el file22.txt archivo y copiarlo a la ~/tmp/images directorio.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

buscar y copiar un tipo de archivos a un directorio

para encontrar archivos como imágenes con jpg extensión en el directorio actual y copiarlos en una ubicación diferente como una carpeta de imágenes, use;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

esto encontrará y copiará todos los archivos JPG a la carpeta ~/tmp/images.

buscar y copiar un archivo a muchos directorios

buscar y copiar un solo a varios directorios.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

se encuentra el archivo de hci archivo y cópielo en los tres directorios de /tmp/dir1/ /tmp/dir2/ y $HOME/3/

Buscar y mover archivos a un directorio diferente

Para mover un archivo de un directorio a otro., Para mover el universal.php archivo;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

Buscar y mover archivos con una extensión determinada, a una carpeta diferente

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Encontrar ciertos archivos y mover a una determinada carpeta diferente

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

El comando busca todos los archivos con nombres que comienzan con uni, y con alguna extensión. Luego los mueve al directorio /unifiles/

buscar y mover archivos basados en la edad

buscar y mover archivos anteriores a los días especificados a una ubicación diferente, como el archivo.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

esto buscará archivos pdf de más de 20 días y los moverá al directorio backup1.,los archivos y directorios

La sintaxis para la búsqueda y eliminación de archivos o directorios en el directorio actual es

find . -type f -name "file to delete" -exec rm -f {} ; eliminar sólo los archivos o

find . -type d -name "dir-to-delete" -exec rm -rf {} ; para borrar directorios sólo

Encontrar y eliminar archivos específicos sólo

Para encontrar y eliminar archivos que inician con til, uso;

find . -type f -name "til*" -exec rm {} ; 

Para encontrar y eliminar directorios de inicio con til

find . -type d -name "til*" -exec rm {} ;

Eliminar archivos y directorios

find . -name "til*" -exec rm -rf {} ; 

Esto eliminará los archivos y directorios que comienzan con las letras til.,

eliminar por extensión

a continuación se muestra cómo puede localizar y eliminar todos los archivos txt en el directorio actual. Reemplazar el txt con otra extensión, tales como bak, pdf o a cualquier otro que desee quitar.

find . -type f -name "*.txt" -exec rm -f {} ;

en caso de que desee que el sistema le pida que confirme antes de eliminar cada archivo, agregue la opción-i como se muestra a continuación.,

find . -type f -name "*.txt" -exec rm -i {} ;

Output

de forma predeterminada, la opción-rmno eliminará los directorios y debe usar la opción–r para garantizar una eliminación recursiva. Esto asegura la eliminación de directorios vacíos y aquellos que contienen archivos. La opción -f fuerza la eliminación y se usa tanto para los archivos como para los directorios.

buscar y eliminar archivos anteriores a n días

buscar y eliminar archivos de copia de seguridad anteriores a 20 días del directorio actual.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

esto eliminará todos los archivos.bak anteriores a 20 días.

buscar y eliminar directorios solamente

para eliminar un directorio llamado dir22

find . -type d -name dir22 -exec rm -rf {} ;

asegúrese de que coincide con el caso del nombre del directorio o utilice la opción -iname.

find . -type d -iname Dir22 -exec rm -rf {} ;

Elimina tanto Dir22 y dir22

Para confirmar antes de la eliminación, utilice la opción-i.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Output
rm: remove directory ‘./ Dir22’?, N
rm: eliminar directorio’./ dir22′? y

En nuestro caso, hemos ingresado n directorio Dir22 que no será eliminado y y para el dir22 que será eliminado.

buscar y eliminar archivos vacíos

puede utilizar cualquiera de los siguientes comandos para localizar archivos vacíos y eliminarlos automáticamente.

find ./ -type f -size 0 -exec rm -f {} ;

or
find ./ – tipo F-Tamaño 0 / xargs rm-F
O
buscar .,/ – type F-size 0-delete

buscar y eliminar directorios vacíos

para eliminar directorios vacíos usaremos la opción d.

find ./ -type d -empty -exec rmdir {} ;

otra alternativa es usar delete en lugar de remove.

find ./ -type d -empty -delete

tenga en cuenta que eliminar el sistema o archivos críticos de su computadora puede dañar el sistema operativo o las aplicaciones o provocar la pérdida de sus datos importantes.

para evitar eliminaciones accidentales, se recomienda utilizar una cuenta de usuario que no sea root., Además, asegúrese de que está eliminando los archivos correctos que no son útiles y que tiene una copia de seguridad de todos sus archivos de datos por si acaso.

¿qué sigue?

siga adelante y pruebe los comandos de búsqueda de Linux anteriores en su laboratorio o entorno de no producción. Vea si puede usar algunos para automatizar la limpieza del sistema de archivos con Crontab. Y, para dominar Linux, echa un vistazo a este curso en línea.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir a la barra de herramientas