en los sistemas operativos Linux, el comando find se puede usar para buscar archivos y directorios en su computadora. Para continuar, seleccione un enlace de la siguiente lista o vaya a través de cada sección EN orden.
para usar find, comience abriendo una sesión de terminal para acceder a la línea de comandos.
funcionalidad básica de find
Ejecutar find sin ninguna opción produce una lista de todos los archivos y directorios dentro y debajo del directorio de trabajo., Por ejemplo, si su directorio de trabajo es /home/hope/Documents, ejecutar find muestra lo siguiente:
- Cada archivo en/home/hope / Documents.
- cada subdirectorio en/home/hope / Documents.
- Cada archivo en cada uno de esos subdirectorios.
vamos a verlo en acción., En primer lugar, vamos a comprobar nuestro directorio de trabajo mediante el comando pwd:
pwd
/home/hope/Documents
ahora vamos a ejecutar find sin ninguna opción:
find
en este ejemplo, vemos un total de diez archivos y cuatro subdirectorios carpeta de documentos.
observe que la salida comienza con un solo punto, que representa el directorio de trabajo., Ejecutar find sin opciones es lo mismo que especificar que la búsqueda debe comenzar en el directorio de trabajo, así:
find .
el ejemplo anterior es la forma» adecuada » de usar find. Si intenta usarlo en otro sistema operativo tipo Unix, como FreeBSD, es necesario especificar un directorio. Es una buena práctica usar esta forma del comando.,
especificando dónde buscar
para listar Solo los archivos y subdirectorios que están contenidos en el directorio/home/hope/Documents/images, especifique el primer argumento del comando como:
find /home/hope/Documents/images
observe que la ruta completa también se muestra en los resultados.,
si nuestro directorio de trabajo es /home/hope/Documents, podemos usar el siguiente comando, que encuentra los mismos archivos:
find ./images
pero esta vez, la salida refleja la ubicación inicial de la búsqueda y se ve así:
por defecto, la búsqueda se ve en cada subdirectorio de su ubicación inicial. Si desea restringir cuántos niveles de Subdirectorio buscar, puede usar la opción-maxdepth con un número.
por ejemplo, especificando-maxdepth 1 Busca solo en el directorio donde comienza la búsqueda., Si se encuentran subdirectorios, se enumeran, pero no se buscan.,
find . -maxdepth 1
../images./bigfiles.txt./gimp-2.8.16.tar.bz2./hp-fanfic./archlinux-2016.02.01-dual.iso
Specifying-maxdepth 2 Busca en el directorio y un subdirectorio profundo:
find . -maxdepth 2
Specifying-maxdepth 3 busca un nivel más profundo que eso:
find . -maxdepth 3
buscar por nombre
para restringir sus resultados de búsqueda para que coincidan solo con archivos y directorios que tienen un nombre determinado, use la opción-Name y ponga el nombre entre comillas:
find . -name "picard.jpg"
./images/memes/picard.jpg
También puede usar comodines como parte de su nombre de archivo., Por ejemplo, para encontrar todos los archivos cuyo nombre termina en .jpg, puede usar un asterisco para representar el resto del nombre del archivo. Cuando se ejecuta el comando, el shell se glob el nombre de archivo en cualquier cosa que coincida con el patrón:
find . -name "*.jpg"
./images/hp/snape.jpg./images/hp/harry.jpg./images/memes/winteriscoming.jpg./images/memes/picard.jpg
Observe que el comando no muestra el archivo cuya extensión (en este caso, JPG) está en mayúsculas. Esto se debe a que, a diferencia de otros sistemas operativos, como Microsoft Windows, los nombres de archivo de Linux distinguen entre mayúsculas y minúsculas.,»>
para listar Solo directorios y omitir nombres de archivo, especifique-type d:
find . -type d
../images./images/hp./images/memes./hp-fanfic
buscar archivos basados en el tamaño
por ejemplo, para encontrar archivos que son «más grandes que 50 kilobytes», use-size +50k:
find . -size +50k
./images/memes/winteriscoming.jpg./gimp-2.8.16.tar.bz2./archlinux-2016.02.01-dual.iso
para archivos «mayores de 10 megabytes», use-size +10m:
find . -size +10M
./gimp-2.8.16.tar.bz2./archlinux-2016.02.01-dual.iso
para «mayores de 1 gigabyte», use-size +1g:
find . -size +1G
./archlinux-2016.02.01-dual.iso
para archivos en un cierto rango de tamaño, Use opciones de dos tamaños., Por ejemplo, para encontrar archivos «más grandes que 10 megabytes, pero más pequeños que 1 gigabyte», especifique-size +10m-size-1g:
find . -size +10M -size -1G
./gimp-2.8.16.tar.bz2
buscar archivos basados en la modificación, el acceso o el cambio de estado
la opción-mtime restringe la búsqueda por cuántos días desde que se modificaron los contenidos del archivo. Para especificar días pasados, utilice un número negativo., Por ejemplo, para encontrar solo los archivos que se modificaron en los últimos dos días (Hace 48 horas), use-mtime -2:
find . -mtime -2
la opción-mmin hace lo mismo, pero en términos de minutos, no de días. Por ejemplo, este comando solo muestra los archivos modificados en la última media hora:
find . -mmin -30
una opción similar es-ctime, que comprueba cuándo se cambió el estado de un archivo por última vez, medido en días. Un cambio de estado es un cambio en los metadatos del archivo. Por ejemplo, cambiar los permisos de un archivo es un cambio de estado.,
La opción -cmin busca un cambio de estado, medido en minutos.
también puede buscar cuándo se accedió por última vez a un archivo, en otras palabras, cuándo se vio su contenido por última vez. La opción-atime se utiliza para buscar archivos en función de su tiempo de acceso más reciente, medido en días.
la opción-amin realiza la misma restricción de búsqueda, pero se mide en minutos.
redirigir la salida a un archivo de texto
si está realizando una búsqueda muy grande, es posible que desee guardar los resultados de su búsqueda en un archivo, para que pueda ver los resultados más tarde., Puede hacer esto redirigiendo su salida de búsqueda a un archivo:
find . -iname "*.jpg" > images.txt
a continuación, puede abrir sus resultados en un editor de texto o imprimirlos con el comando cat.
cat images.txt
alternativamente, puede canalizar su salida al comando tee, que imprime la salida a la pantalla y la escribe en un archivo:
find . -size +500M | tee bigfiles.txt
./archlinux-2016.02.01-dual.iso
cat bigfiles.txt
./archlinux-2016.02.01-dual.iso
supresión de mensajes de error
Puede recibir el mensaje de error «Permiso denegado» al realizar una búsqueda., Por ejemplo, si busca en el directorio raíz como usuario normal:
find /
recibirá ese mensaje de error si find intenta acceder a un archivo que su cuenta de usuario no tiene permiso para leer. Puede realizar la búsqueda como el superusuario (root), que tiene acceso completo a todos los archivos en el sistema. Pero no se recomienda hacer las cosas como root, a menos que no haya otras opciones.,
si todo lo que necesita hacer es ocultar los mensajes de «Permiso denegado», puede agregar 2&>1 | grep-v «Permiso denegado» al final de su comando, de esta manera:
find / 2>&1 | grep -v "Permission denied"
el ejemplo anterior filtra permiso denegado «mensajes de su búsqueda. ¿Cómo?
2>&1 es una redirección especial que envía mensajes de error a la salida estándar para canalizar las líneas combinadas de salida al comando grep., grep-v luego realiza una coincidencia inversa en «Permiso denegado», mostrando solo líneas que no contienen esa cadena.
redireccionar y usar grep para filtrar los mensajes de error es una técnica útil cuando «Permiso denegado» está saturando los resultados de búsqueda y no puede realizar la búsqueda como root.
ejemplos
find ~/. -name "*.txt" -amin -120
buscar todos los archivos en su directorio personal y debajo de los cuales terminan en la extensión».txt». Mostrar solo los archivos a los que se ha accedido en las últimas dos horas.,
find . -name "*.zip" -size +10M -mtime -3
buscar todos los archivos en el directorio de trabajo y debajo cuyo nombre tiene la extensión».zip » y cuyo tamaño es superior a 10 megabytes. Mostrar solo los archivos cuyo contenido haya sido modificado en las últimas 72 horas.
find . -iname "*report*" -type f -maxdepth 2
realice una búsqueda insensible a mayúsculas y minúsculas de archivos que contengan la palabra «report» en su nombre. Si la búsqueda encuentra un directorio con «report» en su nombre, no lo muestre. Busque solo en el directorio de trabajo, y un nivel de directorio debajo de él.,
find / -name "*init*" 2>&1 | grep -v "Permission denied" | tee ~/initfiles.txt
buscar todos los archivos en el sistema cuyo nombre contiene «init», suprimiendo los mensajes de error. Muestra los resultados en la pantalla y envíalos a un archivo en tu directorio personal llamado «initfiles.txt».
Deja una respuesta