El comando Find en Linux es una herramienta poderosa que permite a los administradores del sistema encontrar y administrar archivos y directorios basados en una amplia gama de criterios de búsqueda. Puede encontrar directorios y archivos basados en su nombre, tipo o extensión, tamaño, permisos, etc.
Además de encontrar archivos y directorios, combinar Find con otros comandos le permite actuar sobre los resultados. Agregar el parámetr o-exec permite a los administradores del sistema ejecutar comandos externos y realizar acciones como copiar, mover, eliminar o cambiar los permisos para los archivos que cumplen con los criterios especificados como tamaño, nombre, etc.
En este artículo, comenzaremos explicando los comandos básicos de búsqueda de Linux con ejemplos. Esto le mostrará cómo encontrar archivos y directorios. Luego le mostraremos cómo usar el parámetr o-exec para funcionar con archivos o directorios en función de su tamaño, permisos, etc.
La sintaxis general del comando encontrar:
encontrar
- la ruta especifica el directorio.
- Nombre de archivo o dir-to-Search: el nombre del archivo o directorio para buscar.
- La acción a realizar: p. Copiar, eliminar, mover, etc.
En este tutorial, explicaremos cómo encontrar archivos y directorios que coincidan con los patrones especificados. También veremos cómo realizar acciones en archivos o directorios que encuentre el comando Buscar. La guía se basa en Ubuntu, pero se aplica a la mayoría de las distribuciones y versiones de Linux.
- Encontrar archivos y directorios
- Busque archivos específicos por nombre o extensión
- Buscando archivos específicos en otro directorio
- Buscar archivos por extensión
- Buscar archivos y directorios por nombre
- Encontrar solo archivos o directorios
- El comando de búsqueda no es insensible
- Buscar un archivo de múltiples directorios
- Encuentre múltiples archivos con diferentes extensiones de todos los directorios
- Encuentre archivos que contienen texto específico
- Buscar archivos y directorios por tamaño
- Para encontrar archivos de un tamaño específico, es igual a 30 mb
- Encontrar archivos más grandes que el tamaño especificado
- Encuentre archivos de menos de 10 MB en el directorio actual
- Encuentre archivos entre 100 MB y 200 MB de tamaño.
- Buscar directorios mayores de 20 kb
- Encuentra archivos y directorios vacíos.
- Encontrar archivos por edad o tiempo de modificación
- Por fecha de modificación
- Encuentre archivos basados en el acceso o la modificación
- Encuentre archivos modificados en los últimos días N
- Encuentre archivos modificados durante un período específico.
- Archivos y directorios accedidos en los últimos 10 minutos
- Encontrar archivos que coincidan con permisos específicos
- Encontrar archivos con 777 permisos
- Encuentra archivos que son escritos por el propietario
- Encontrar archivos que pertenecen a un usuario
- Encontrar archivos específicos que pertenecen a un usuario
- Busque y enumere los archivos y directorios junto con sus permisos
- Encontrar y actuar sobre los resultados
- Encuentre archivos y cambie los permisos
- Encontrar y cambiar los permisos a archivos y directorios
- Buscar y copiar archivos o directorios
- Encontrar y copiar un archivo a muchos directorios
- Encontrar y mover archivos a otro directorio
- Encuentre archivos específicos y muévalos a otra carpeta
- Encontrar y mover archivos por edad
- Buscar y eliminar archivos y directorios
- Buscar y eliminar solo archivos específicos
- Para eliminar tanto archivos como directorios
- Eliminar por extensión
- Encontrar y eliminar archivos mayores que n días
- Encontrar y eliminar solo directorios
- Buscar y eliminar archivos vacíos
- Encontrar y eliminar directorios vacíos
- Que sigue.
Encontrar archivos y directorios
Busque archivos específicos por nombre o extensión
Para encontrar un archivo específico, ejecute el siguiente comando desde la raíz (/). El comando contiene el nombre exacto del archivo que está buscando.
encontrar .-name archivo22. txt
./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 si el archivo está en más de una ubicación.
También puede buscar un archivo en un directorio diferente mientras permanece en la ubicación actual. En este caso, debe especificar la ruta al directorio que desea buscar.
buscar ./tes t-name file22. txt
Buscando archivos específicos en otro directorio
En nuestro caso, buscaremos todo lo que comience con el archivo de letras en el directorio de prueba.
buscar ./tes t-name archivo*
./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 específica, agréguelo al comando.
encontrar .-name *. txt
./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
Use el comando a continuación para buscar archivos y directorios que comiencen con las letras QA. Nuestra computadora tiene los archivos Qatree. txt y Qa. txt, y un directorio llamado QA.
Cómo deshabilitar el firewall UFW en Linux
Si ejecutamos el comando;
encontrar ./ -name "Qa*"
Devuelve la siguiente salida
./test/qatree. pdf ./test/qa. txt ./home/qa
El comando devuelve ambos archivos y directorios que coinciden con los criterios de búsqueda. Para encontrar solo archivos o directorios, debe especificar esto en el comando.
Encontrar solo archivos o directorios
Solo para archivos, use el conmutador Tipo F.
encontrar ./ -Type f-name "Qa*"
./test/qatree. pdf ./test/qa. txt
Agregue la opción Tipo D para encontrar solo directorios.
encontrar ./ -Type d-name "Qa*"
./HOME/QA
El comando de búsqueda no es insensible
Todas las búsquedas con el interrupto r-name son sensibles a mayúsculas y no producirán resultados capitalizados. Para obtener todos los casos, use el parámetr o-iname.
Encuentra ./ -iname "Qa*"
./test/qatree. pdf ./test/qa. txt ./test/qatest. txt ./home/qa
Buscar un archivo de múltiples directorios
Para encontrar archivos en diferentes directorios, agregue sus rutas al comando. En nuestro caso, verificaremos la prueba y los directorios numéricos.
buscar ./test ./numeri c-name file22. tx t-type F
./test/file22. txt /root/numeric/file22. txt
Encuentre múltiples archivos con diferentes extensiones de todos los directorios
Puede usar el comando Buscar para encontrar múltiples archivos con diferentes extensiones, como *. doc, *. txt, *. pdf, y así sucesivamente. Esto se puede hacer individualmente, una extensión a la vez, o con un solo comando que incluye todas las extensiones que necesita.
encontrar .-type f (-name «*. txt» – o-name «*. pdf» – o-name «*. doc»)
./test/subtest/subfil. txt ./test/qatree. pdf ./test/file22. txt ./test/qa. txt ./test/file30. doc ./books/acro. pdf ./data1/file22. txt ./docs/files32. txt
Encuentre archivos que contienen texto específico
A veces desea acceder a un archivo que contiene texto específico, pero no puede recordar su nombre o ubicación. Este comando le permite encontrar todos los archivos que contienen el texto de destino.
Para encontrar todos los archivos que contienen la palabra «hiperconvergencia», use;
Find / -Type F-exec Gre p-L -I "Hyerconvergence"<> ;
/root/numérico/hci/root/hcip
La opció n-i permite que el comando ignore los casos y encuentre texto si está capitalizado o no, es decir, hiperconvergencia, hiperconvergencia, etc.
Para buscar archivos en un directorio específico, simplemente agrégalos al comando
encontrar ./numéric o-type f-exec gre p-l -i "hiperconvergencia"<> ;
./numeric/hci
Echa un vistazo a otros ejemplos de comandos GREP.
Buscar archivos y directorios por tamaño
Puede encontrar todos los archivos o directorios que sean menores que, iguales o mayores que cierto tamaño, dentro de un rango cierto o vacío. Use el formato de tamaño apropiado según el tipo de archivos o directorios que está buscando.
Las opciones de tamaño incluyen;
Para encontrar archivos de un tamaño específico, es igual a 30 mb
Para buscar, encuentre todos los archivos de tamaño de 30 MB.
encontrar / -tamaño 30m
Encontrar archivos más grandes que el tamaño especificado
encontra r-size +2m
.//Downloads/ubuntu18043. iso ./. cache/pip/http/6/e/3/8/3/3/6e38383f41850c3e5705d48116bc52f81b92a80500f41430507 7a9c
Encuentre archivos de menos de 10 MB en el directorio actual
encontrar .-type f-siz e-10m
Encuentre archivos entre 100 MB y 200 MB de tamaño.
Al buscar archivos dentro de un cierto rango, como de 100 a 200MB
encontrar / -size +100 m-siz e-200m
Buscar directorios mayores de 20 kb
encontrar / – -type d-size +20k
Encuentra archivos y directorios vacíos.
encontrar ./ -Type F-Size 0
encontrar ./ -Type F-Epty
encontrar ./ -type d-empty
Encontrar archivos por edad o tiempo de modificación
Encuentre archivos mayores que n días
find / rath / -type f-name '*. txt' -mtime +8
-Mtime +8 buscará archivos de texto mayores de 8 días.
Por fecha de modificación
Esto buscará archivos modificados en las últimas 17 horas.
encontrar .-mtim e-1 7-type F
Esto buscará directorios modificados en los últimos 10 días.
encontrar .-mtim e-1 0-type d
Encuentre archivos basados en el acceso o la modificación
Busque archivos basados en la fecha o hora de acceso. Esto le permite ver archivos a los que se accedió o no se accedió durante un período específico.
Para ver archivos a los que no se ha accedido en los últimos 10 días en el directorio de inicio.
encontrar /hom e-atime +10
Archivos a los que se accede exactamente hace 10 días
encontrar /hom e-atime 10
Accedido en los últimos 10 días
encontrar /hom e-atim e-10
Encuentre archivos modificados en los últimos días N
También puede encontrar archivos en el directorio /Home que han cambiado en los últimos 10 días usando el comando;
encontrar /hom e-mtim e-10
Encuentre archivos modificados durante un período específico.
Por ejemplo, todos los archivos se modificaron entre 6 y 15 días en el directorio de inicio.
find /hom e-type f-mtime + 6-mtim e-15
Archivos y directorios accedidos en los últimos 10 minutos
Para encontrar archivos a los que se accede en los últimos 10 minutos, use el parámetr o-amin.
encontrar .-ami n-1 0-tipo F
./. bash_history ./§Email protegido]:~#
Directorios a los que se accede en los últimos 10 minutos
encontrar .-ami n-1 0-tipo D
Encontrar archivos que coincidan con permisos específicos
$ Fin d-Mode
Donde el modo es la resolución, que puede ser numérica, como 644, 655, 700, 777, etc., o letras, como u = x, a = r+x, etc.
9 mejores entornos de escritorio de Linux para usar en 2022
Puede establecer el modo de las siguientes tres formas diferentes.
Encontrar archivos con 777 permisos
encontra r-perm 777
./file1
Encuentre archivos con un tamaño de al menos 766 Fin d-Per m-766
./file2 ./file1
El comando busca todos los archivos en los que
- El propietario del archivo tiene permisos de lectura/escritura/ejecución.
- El grupo tiene permisos de lectura/escritura
- Otros tienen permisos de lectura/escritura
Por lo tanto, devuelve dos archivos que cumplen con este criterio: File1 y File2. Los archivos no tienen que tener los 766 permisos exactos y pueden tener permisos adicionales de la misma longitud, pero deben tener al menos los especificados.
Encuentra archivos que son escritos por el propietario
Ahora usaremos «/» para encontrar archivos que sean escritos para su propietario, un grupo u otros.
encontra r-perm /222../file2 ./file3 ./file1
Lo anterior busca archivos que son escritos por su propietario o grupo. Esto devuelve archivos que son escritos por uno de ellos, pero no necesariamente por ambos. Para ver archivos para los cuales ambos tienen permisos de escritura, use el prefijo -.
encontra r-per m-220
./file2 ./file1
Encontrar archivos que pertenecen a un usuario
Encuentra todos los archivos que pertenecen a Jack
encontrar /hom e-user jack
/home/jack /home/jack/examples. desktop /home/jack/. gnupg /home/jack/. gnupg/private-keys-v1. d /home/jack/ans. cgi
Encontrar archivos específicos que pertenecen a un usuario
Encuentre todos los archivos de texto que pertenecen a Jack.
encontrar /hom e-user jac k-iname "*. txt"
/home/jack/docs/file32. txt
Busque y enumere los archivos y directorios junto con sus permisos
encontra r-name "*. conf" |L S-L
Total 120 DRWXR-XR-X 2 Raíz Root 4096 Dic 31 13:19 Backup2 DRWXR-XR-X 2 Root Root 4096 Jan 4 11:57 Desktop DRWXR-XR-X 2 Root Root 4096 Dic 31:50 Documentos DRWXR-XR-XR-XR-x 2 raíz raíz 4096 31 de diciembre 12:27 descarga s-rw-r-r-- 1 raíz 0 enero 4 12:02 file22. doc drwxr-xr-x 2 raíz root 4096 4 de enero 12:14 file2 3-rw-r-r-- 1 raíz 0 4 de enero 12:23 file23. txt
Encontrar y actuar sobre los resultados
En esta sección, veremos cómo puede actuar en archivos que coincidan con el patrón especificado en el comando Find.
Encuentre archivos y cambie los permisos
Encuentre y cambie los permisos para tipos de archivos específicos. En nuestro caso, trabajaremos con archivos PHP con diferentes permisos como se muestra a continuación.
[correo electrónico protegido]:~/ver $ l s-la total 8 DRWXRWX R-X 2 Jack Jack 4096 3 de enero 14:11. DRWXRXR-XR-X 8 Jack Jack Jack 4096 3 de enero 14:05.-rwxr-xr-x 1 Jack Jack 0 3 de enero 14:06 ANS. PH P-RW-RW-RW-R-- 1 Jack Jack 0 Jan 3 14:11 Base. ph p-RWXR-XR-X 1 Jack Jack 03 de enero 14:06 Query. ph p-rw-rw-rw-rw-- 1 Jack Jack 0 3 de enero 14:11 qust. ph p-rwxr-xr-x 1 Jack Jack 0 Jan 3 14:06 Text. ph p-rw-rw-rw-rw-- 1 Jack Jack Jack 0 3 de enero 14:11 Vary. php
Ahora buscaremos todos los archivos PHP (arriba) y cambiaremos sus permisos a 755.
Encuentre ve r-name "*. php" -type f-exec chmod 755<> ;
El comando busca archivos PHP en el directorio Ver y luego establece sus permisos en 755 (RWXR-XR-X).
[correo electrónico protegido]:~/ver $ l s-la total 8 DRWXRWX R-X 2 Jack Jack 4096 3 de enero 14:11. DRWXR-XR-X 8 Jack Jack 4096 3 de enero 14:05.-rwxr-xr-x 1 Jack Jack 0 3 de enero 14:06 ANS. PH P-RWXR-XR-X 1 Jack Jack 0 Jan 3 14:11 Base. ph p-Rwxr-Xr-X 1 Jack Jack 0 Jan 3 14:06 consulta. ph p-rwxr-xr-x 1 Jack Jack 0 3 de enero 14:11 qust. ph p-rwxr-xr-x 1 jack jack 0 enero 3 14:06 Text. ph p-rwxr-xr-xr-x 1 Jack 0 Jan3 14:11 Vary. php
Encontrar y cambiar los permisos a archivos y directorios
Encuentre archivos con permisos 644 y cámbialos a los permisos 655.
encontrar .-Type F-Perm 64 4-Exec Chmod 655<> ;
También puede encontrar directorios con permisos 644 y cambiarlos a 755.
encontrar .-Tipo d-Perm 644
./docs
La carpeta Docs tiene 644 permisos.
DRWXRWXR-X 2 Jack Jack 4096 3 de enero 12:45 PM Documentos
Para configurarlo en 755, corremos
encontrar .-Type D-Perm 64 4-Exec CHMOD 755.<> ;
Ahora podemos verificar aún más que 755 es exactamente lo que es
encontrar .-Tipo d-Perm 755
Cómo deshabilitar el firewall UFW en Linux
Desde arriba podemos ver que los directorios de raíz y documentos tienen 755 permisos.
El comando L S-LA proporciona los siguientes datos
DRWXR-XR-X 2 Jack Jack 4096 3 de enero 12:45 PM Documentos
Buscar y copiar archivos o directorios
Buscar y copiar un archivo específico en un directorio
El comando a continuación encontrará el archivo File22. txt y copiará en el directorio~/TMP/Imágenes.
Fin d-iname File22. tx t-exec CP<> ~/tmp/imágenes;
Buscar y copiar un tipo de archivo a un directorio
Para encontrar archivos, como imágenes con la extensión JPG, en el directorio actual y copiarlos a otra ubicación, como una carpeta de imagen, use;
encontra r-iname '*. jpg' -exec cp<> ~/tmp/imágenes;
Esto encontrará y copiará todos los archivos JPG en la carpeta~/TMP/Imágenes.
Encontrar y copiar un archivo a muchos directorios
Encuentre y copie uno a múltiples directorios.
encontrar~/TMP/DIR1/~/tmp/dir2/$ home/3/-maxdepth 0-exec cp~/Numérico/HCI<> ;
Esto encontrará el archivo HCI y lo copiará en los tres directorios/tmp/dir1/,/tmp/dir2/, y $ home/3/.
Encontrar y mover archivos a otro directorio
Para mover un archivo conocido de un directorio a otro directorio. Mueva el archivo universal. php;
encontrar~/ carpeta/ -type f-name universal. ph p-exec mv<> ~/ numérico/;
Para encontrar y mover archivos con una extensión específica a otra carpeta
encontrar~/ numérico/ -type f-name '*. php' -exec MV<> ~/ carpeta/;
Encuentre archivos específicos y muévalos a otra carpeta
encontra r-type f-name uni*.* -exec MV<> ~/ unifiles/;
El comando busca todos los archivos con nombres que comienzan con UNI y tienen cualquier extensión. Luego los mueve al directorio / unifiles /
Encontrar y mover archivos por edad
Encuentre y mueva archivos mayores que un número específico de días a otra ubicación, como un archivo.
find / rath / -type f-name '*. pdf' -mtime +2 0-exec mv<>/ Backup1/;
Esto buscará archivos PDF mayores de 20 días y los moverá al directorio de respaldo1.
Buscar y eliminar archivos y directorios
Sintaxis para encontrar y eliminar archivos o directorios en el directorio actual:
encontrar .-type f-name «archivo para eliminar» -exec r m-f<>; eliminar solo archivos o
encontrar .-type d-name «Directorio para eliminar» -exec r m-rf<>; Eliminar solo directorios
Buscar y eliminar solo archivos específicos
Para encontrar y eliminar archivos que comienzan con TIL, use;
encontrar .-Type f-name "til*" -exec rm<> ;
Para encontrar y eliminar directorios que comienzan con TIL
encontrar .-type d-name "til*" -exec rm<> ;
Para eliminar tanto archivos como directorios
encontrar .-name "til*" -exec r m-rf<> ;
Esto eliminará los archivos y directorios que comienzan con las letras TIL.
Eliminar por extensión
Lo siguiente muestra cómo encontrar y eliminar todos los archivos de texto en el directorio actual. Reemplace TXT con otra extensión como BAK, PDF o cualquier otra extensión que desee eliminar.
encontrar .-Type f-name "*. txt" -exec r m-f<> ;
Si desea que el sistema solicite confirmación antes de eliminar cada archivo, agregue el parámetr o-I como se muestra a continuación.
encontrar .-Type f-name "*. txt" -exec r m-i<> ;
RM: Eliminar el archivo vacío regular './file22. txt'? Y RM: Eliminar el archivo vacío regular './file22. txt'? Y RM: Eliminar el archivo vacío regular './file23. txt'?
Por defecto, -RM no elimina los directorios, y debe usar el parámetr o-r para garantizar la eliminación recursiva. Esto asegura que se eliminen los directorios y directorios vacíos que contienen archivos. El parámetr o-f causa la eliminación forzada y se usa para archivos y directorios.
Encontrar y eliminar archivos mayores que n días
Encuentre y elimine archivos de copia de seguridad mayores de 20 días desde el directorio actual.
encontrar .-Type f-name '*. bak' -mtime +2 0-exec rm<> ;
Esto eliminará todos los archivos . bak mayores de 20 días.
Encontrar y eliminar solo directorios
Para eliminar un directorio llamado Dir22
encontrar .-Type d-name dir2 2-exec r m-rf<> ;
Asegúrese de que coincida con el caso del nombre del directorio o use el parámetr o-iname.
encontrar .-Tipo d-iname dir2 2-exec r m-rf<> ;
Elimina tanto Dir22 como Dir22
Use el parámetr o-i para confirmar antes de eliminar.
encontrar .-Type d-iname dir2 2-exec r m-r f-i<> ;
Salida RM: Eliminar directorio ‘./dir22’? n rm: Eliminar directorio ‘./dir22’? u
En nuestro caso, hemos ingresado N para el Directorio Dir22, que no se eliminará, e Y para el Directorio Dir22, que ahora se eliminará.
Buscar y eliminar archivos vacíos
Puede usar cualquiera de los siguientes comandos para encontrar archivos vacíos y eliminarlos automáticamente.
encontrar ./ -type f-size 0-exec r m-f<> ;
o encontrar ./ -Type f-size 0 |xargs r m-f o encontrar ./ -type f-size 0-delete
Encontrar y eliminar directorios vacíos
Para eliminar los directorios vacíos, usaremos el parámetro D.
encontrar ./ - -type d-emp t-exec rmdir<> ;
Otra alternativa es usar Eliminar en lugar de eliminar.
encontrar ./ - -type d-emp t-delete
Tenga en cuenta que eliminar el sistema o los archivos importantes de su computadora puede dañar su sistema operativo o aplicaciones o causar pérdida de datos importantes.
Para evitar la eliminación accidental, se recomienda que use una cuenta de usuario que no sea Root. Además, asegúrese de eliminar los archivos que necesita que no desea y que tenga una copia de seguridad de todos sus archivos de datos por si acaso.
Que sigue.
Continúe y pruebe los comandos de búsqueda de Linux anteriores en su laboratorio o entorno real. Vea si puede usar algunos de ellos para automatizar la limpieza del sistema de archivos con Crontab. Y para Master Linux, consulte este curso en línea.