Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

¿Cómo usar Find Command en Linux? [Una guía para principiantes]

Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

En su forma básica, encontrar es fácil. Al mismo tiempo, puede resultar complejo con la cantidad de opciones, pruebas y acciones disponibles.

El comando de búsqueda es una herramienta increíblemente poderosa y esforzarse en aprenderlo puede ser gratificante. Le ayudará a realizar varias tareas de administración del sistema de manera eficiente, como la administración del espacio en disco, operaciones de archivos recursivas y copias de seguridad.

El comando find de Linux busca archivos y carpetas según los criterios que defina y le permite realizar una acción en los resultados de la búsqueda. La sintaxis de encontrar es así:

$ find directory-to-search criteria action

donde

  • directorio a la búsqueda es el punto de partida desde donde buscar comienza a buscar archivos. La búsqueda incluye todos los subdirectorios de este directorio.
  • Criterios (prueba) indica qué archivos buscar
  • La acción indica qué hacer con cada archivo encontrado que coincida con los criterios.

Tests

Buscar por nombre

He aquí un ejemplo sencillo. El siguiente comando busca el archivo a.txt en el directorio actual:

$ find . -name "a.txt"
./a.txt

Dónde

  • . se refiere al directorio actual
  • -name test especifica los criterios que deben coincidir

Esta búsqueda con -name test distingue entre mayúsculas y minúsculas e ignoraría el archivo A.txt. Para asegurarse de que su búsqueda no distingue entre mayúsculas y minúsculas -iname prueba:

$ find . -iname "a.txt"
./a.txt
./A.txt

Para buscar todo .jpg archivos de imagen en el directorio actual, use el patrón comodín *.jpg:

$ find . -name "*.jpg"
./genxfacebook2.jpg
./genxfacebook1.jpg
./Moodle2.jpg
./moodle.jpg
./moodle/moodle1.jpg
./genxfacebook.jpg

Puede utilizar el nombre del directorio en el que buscar. Por ejemplo, para buscar todas las imágenes .jpg en el directorio / home:

$ find /home -name "*.jpg"
find: `/home/ubuntu/.ssh': Permission denied
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/me/hello.jpg
find: `/home/me/testfiles': Permission denied
find: `/home/me/data': Permission denied
/home/me/water.jpg
find: `/home/me/.cache': Permission denied

Si ve demasiados errores de permisos denegados, puede agregar 2> / dev / null al final del comando. Esto redirige los mensajes de error al dispositivo / dev / null y proporciona una salida más limpia:

find /home -name "*.jpg" 2>/dev/null
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/me/hello.jpg
/home/me/water.jpg

Buscar por tipo de archivo

Usando el -type prueba puede buscar archivos por tipo. Los tipos de archivos pueden ser:

f plain files
d directories
l symbolic links
b block devices
c character devices
p named pipes
s sockets

Por ejemplo, el uso de test -type d mostrará solo los directorios:

$ find . -type d
.
./.ssh
./.cache
./moodle

Buscar por tamaño de archivo

Es posible que deba buscar archivos grandes y eliminarlos. En el siguiente ejemplo, la prueba -size va seguida de la cadena + 1G. Esto buscaría todos los archivos de más de 1 GB.

$ find . -size +1G 
./Microsoft_Office_16.29.19090802_Installer.pkg
./android-studio-ide-183.5692245-mac.dmg

El signo + significa archivos de búsqueda más grandes que el siguiente número. Se puede usar un símbolo menos (-) para indicar menor que. No usar ningún signo significaría coincidir exactamente con el tamaño.

El número va seguido de la unidad de tamaño del archivo. Las unidades pueden ser:

Caracter Unidad de tamaño fino
b 521 bloques de adiós
c Bytes
k Kilobytes
M Megabytes
G gigabytes

Buscar directorios y archivos vacíos

Utilice la herramienta -empty prueba para encontrar directorios y archivos vacíos como este:

$ find . -empty
./.cloud-locale-test.skip
./datafiles
./b.txt
...
./.cache/motd.legal-displayed

Buscar por hora de modificación del archivo

Puede buscar todos los archivos y directorios según el tiempo de creación o modificación con -cmin prueba. Para buscar todos los archivos modificados en los últimos 60 minutos (menos de 60) utilice -60 Me gusta esto:

$ find . -cmin -60
.
./a.txt
./datafiles

Para archivos modificados en cualquier momento antes de los últimos 60 minutos, use +60.

Buscar por tiempo de acceso

Puede buscar archivos por última hora de acceso, con -atime prueba. Por ejemplo, el siguiente comando busca archivos a los que no se haya accedido en los últimos 180 días:

$ find . -atime +180

Estos se pueden mover a un dispositivo de respaldo si el espacio en disco se está agotando.

Búsqueda por nombre de usuario

Con -usuario nombre de usuario prueba puede buscar todos los archivos y directorios que pertenecen a un usuario. Por ejemplo, el siguiente comando busca todos los archivos y directorios propiedad del usuario ubuntu en el directorio / home:

$ find /home -user ubuntu 2>/dev/null
/home/ubuntu
/home/ubuntu/.bash_logout
/home/ubuntu/.bashrc
/home/ubuntu/.ssh
/home/ubuntu/.profile

Buscar por modo

¿Desea buscar archivos configurados en un modo específico, es decir, tiene un conjunto específico de permisos? Utilice la prueba -perma. El siguiente ejemplo busca archivos con permisos establecidos en 777:

$ find /home -perm 777

Operators

Puede utilizar los siguientes tres operadores lógicos para combinar varias pruebas en un solo comando de búsqueda:

  • -y
  • -O
  • -no

Por ejemplo, el siguiente comando busca archivos de más de 100 MB propiedad del usuario:

$ find /home  -user me  -and  -size +100M  2>/dev/null
/home/me/kali-linux-2020.3-installer-netinst-i386.iso

El siguiente comando busca archivos de más de 100 MB propiedad del usuario yo o del usuario vagabundo:

$ find /home \( -user vagrant -or -user me \)  -and  -size +100M  2>/dev/null
/home/vagrant/LibreOffice_7.0.1_Linux_x86-64_deb.tar.gz
/home/me/kali-linux-2020.3-installer-netinst-i386.iso

Debe colocar un carácter de barra invertida delante de los paréntesis para evitar que el shell intente interpretarlos.

Actions

find le brinda los resultados de la búsqueda y luego la opción de realizar una acción en ellos. A continuación, se muestran algunas acciones predefinidas:

Acción Descripción
-borrar Elimina archivos que coinciden con los criterios de búsqueda
-ls Muestra una salida ls detallada con tamaños de archivo y recuento de inodos
-impresión Muestra el nombre de ruta completo de los archivos coincidentes. Es la acción predeterminada si no se especifica ninguna otra acción
Exec- Ejecuta el comando que sigue, en cada línea de la salida de búsqueda

Entonces, si desea buscar todos los archivos vacíos y eliminarlos, así es como puede hacerlo:

$ find . -empty -delete

Precaución: antes de utilizar la acción de eliminación, siempre es seguro ejecutar el comando una vez con -print acción y confirmar los resultados.

EL -exec la acción es especial. Le permite ejecutar un comando de su elección en los resultados de búsqueda. Es como esto:

-exec <em>command</em> {} \;

Aquí

  • comando es el comando que desea ejecutar en los resultados de la búsqueda, como rm, mv o cp.
  • {} representa los resultados de la búsqueda.
  • El comando termina con un punto y coma escapado con una barra invertida.

Entonces, el comando para buscar y eliminar todos los archivos vacíos se puede escribir así:

$ find . -empty -exec rm {} \;

Aquí hay otro ejemplo usando -exec acción. El siguiente comando copia todo .png archivos de imagen al directorio de copia de seguridad / imágenes:

$ find . -name "*.png" -exec cp {} /backups/images \;

Conclusión

Puede utilizar el Comando de búsqueda de Linux para buscar archivos según el nombre, la fecha del último acceso, la fecha de la última modificación, el nombre del usuario (propietario), el nombre del grupo, el tamaño, los permisos y varios otros criterios. Con estos resultados de búsqueda, puede realizar acciones en ellos, como eliminarlos, copiarlos o moverlos a una ubicación diferente.

Una vez que domine el comando de búsqueda, puede ser de gran ayuda y puede simplificar administracion del sistema tareas para ti. ¡Y la clave para dominarlo es practicarlo y usarlo!

Gracias a nuestros patrocinadores
Más lecturas excelentes sobre Linux
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder