Tutoriales

10 formas de usar el comando de búsqueda de Linux

Este find command es uno de los comandos de Linux más útiles, especialmente cuando se trata de cientos o miles de archivos y carpetas en computadoras modernas. Como el nombre sugiere, find Le ayuda a encontrar contenido, no solo por nombre de archivo.

Ya sea que esté usando su propia computadora o tratando de ayudar a alguien en un sistema desconocido, aquí hay 10 formas find puede ayudarlo a encontrar datos importantes.

[ Keep your most commonly used commands handy with the Linux commands cheat sheet. ]

1. Encuentra un solo archivo por nombre

Cuando sepa el nombre del archivo pero no recuerde dónde guardarlo, use find Busque en su directorio de inicio.usar 2>/dev/null Elimine los errores de permisos (o utilice sudo obtener todos los permisos).

$ find / -name "Foo.txt" 2>/dev/null
/home/seth/Documents/Foo.txt

2. Encuentra un solo archivo por nombre aproximado

Si no recuerda el nombre exacto del archivo, o no está seguro de si debe escribir en mayúscula algún carácter, puede realizar una búsqueda parcial y sin distinción entre mayúsculas y minúsculas como esta:

$ find / -iname "*foo*txt" 2>/dev/null
/home/seth/Documents/Foo.txt
/home/seth/Documents/foo.txt
/home/seth/Documents/foobar.txt

3. Encuentra todo

Este ls -R El comando enumera el contenido de un directorio de forma recursiva, lo que significa que no solo enumera el destino que le das, sino que también desciende a cada subdirectorio dentro de ese destino (y cada subdirectorio dentro de cada subdirectorio, etc.) find El comando también tiene esta función, a través de -ls Opciones:

LEER  Cómo instalar Jenkins en Ubuntu 24.04
$ find ~/Documents -ls
3554235 0 drwxr-xr-x [...] 05:36 /home/seth/Documents/
3554224 0 -rw-rw-r-- [...] 05:36 /home/seth/Documents/Foo
3766411 0 -rw-rw-r-- [...] 05:36 /home/seth/Documents/Foo/foo.txt
3766416 0 -rw-rw-r-- [...] 05:36 /home/seth/Documents/Foo/foobar.txt

Tenga en cuenta que no uso 2>/dev/null En este caso, dado que solo enumeré ruta de archivo en mi directorio de inicio, por lo que no espero errores de permiso.

4. Buscar por contenido

Una find El comando no tiene que realizar solo una tarea.De hecho, una de las opciones find Le permite ejecutar diferentes comandos en cualquier resultado find devolver.Esto puede ser especialmente útil cuando necesita buscar archivos por contenido en lugar de por nombre, o debe buscar en ambos.

$ find ~/Documents/ -name "*txt" -exec grep -Hi penguin {} \;
/home/seth/Documents/Foo.txt:I like penguins.
/home/seth/Documents/foo.txt:Penguins are fun.

[ Learn how to manage your Linux environment for success. ]

5. Encuentra archivos por tipo

puedes usarlo -type opciones

$ find ~ -type f
/home/seth/.bash_logout
/home/seth/.bash_profile
/home/seth/.bashrc
/home/seth/.emacs
/home/seth/.local/share/keyrings/login.keyring
/home/seth/.local/share/keyrings/user.keystore
/home/seth/.local/share/gnome-shell/gnome-overrides-migrated
[...]

Siempre que esté utilizando la versión GNU findpuede incluir varios tipos de archivos en sus resultados de búsqueda:

$ find ~ -type f,l -name "notebook*"
/home/seth/notebook.org
/home/seth/Documents/notebook-alias.org

6. Listar solo directorios

una desventaja de ls Ordenar es que no puede filtrar sus resultados por tipo de archivo, por lo que puede ser ruidoso si solo desea una lista de directorios en la ruta.Este find comando con -type d opción es una mejor opción:

$ find ~/Public -type d
find ~/Public/ -type d
/home/seth/Public/
/home/seth/Public/example.com
/home/seth/Public/example.com/www
/home/seth/Public/example.com/www/img
/home/seth/Public/example.com/www/font
/home/seth/Public/example.com/www/style

7. Limite los resultados de las listas

Hay cientos de archivos en el directorio de usuario predeterminado y miles más y, a veces, obtiene más resultados de él. find de lo que quierespuedes usarlo -maxdepth opción seguida del número de directorios que desea find Después de descender al punto de partida:

$ find ~/Public/ -maxdepth 1 -type d
/home/seth/Public/
/home/seth/Public/example.com

8. Encuentra archivos vacíos

A veces es útil encontrar archivos vacíos como una forma de organizar:

$ find ~ -type f -empty
random.idea.txt

Técnicamente, puedes usar find Los archivos vacíos se eliminan, pero la eliminación de archivos mediante programación es peligrosa.Por ejemplo, si olvida incluir -type f buscando vacío documento, obtendrá el directorio en el resultado. Al agregar banderas de eliminación, está eliminando una estructura de directorio posiblemente importante.

inventa tu find comando y luego verifique los resultados antes de eliminar.Además, en find Los resultados se pueden eliminar antes de calificarlos (en otras palabras, puede eliminar directorios en comandos diseñados para eliminar solo archivos colocando el indicador de eliminación antes del indicador de tipo).

prefiero usar xargs o comandos paralelos y basura en el raro caso de que elimine archivos find.

9. Encuentra archivos por edad

Este -mtime La opción le permite limitar la búsqueda a archivos más antiguos, pero también incluye archivos más nuevos, algún valor 24 veces

$ find /var/log -iname "*~" -o -iname "*log*" -mtime +30

Este + Antes -mtime Un número no significa sumar ese número a la hora.Esta es una declaración condicional que coincide (en este ejemplo) con un valor mejor que 24 veces 30. Es decir, el código de ejemplo busca archivos de registro que no se hayan modificado en un mes o más.

Para buscar archivos de registro modificados durante la última semana, puede utilizar - Condicional:

$ find /var/log -iname "*~" -o -iname "*log*" -mtime -7
/var/log/tallylog
/var/log/cups/error_log
/var/log/cups/access_log
/var/log/cups/page_log
/var/log/anaconda/anaconda.log
/var/log/anaconda/syslog
/var/log/anaconda/X.log
[...]

usted ya sabe -ls flag, por lo que puede combinarlo con estos comandos para mayor claridad:

$ find /var/log -iname "*~" -o -iname "*log*" -mtime -7 -ls
-rw-------  1 root root            0 Jun  9 18:20 /var/log/tallylog
-rw-------  1 root lp      332 Aug 11 15:05 /var/log/cups/error_log
-rw-------  1 root lp      332 Aug 11 15:05 /var/log/cups/access_log
-rw-------  1 root lp      332 Aug 11 15:05 /var/log/cups/page_log
-rw-------  1 root root  53733 Jun  9 18:24 /var/log/anaconda/anaconda.log
-rw-------  1 root root 835513 Jun  9 18:24 /var/log/anaconda/syslog
-rw-------  1 root root  21131 Jun  9 18:24 /var/log/anaconda/X.log
[...]

10. Rutas de búsqueda

A veces conoce la estructura de directorios que apunta a los archivos que desea, simplemente no sabe dónde se encuentra la estructura de directorios en el sistema.Para buscar dentro de una cadena de ruta, puede usar -ipath opción, que trata los puntos y las barras no como caracteres de expresión regular, sino como puntos y barras.

$ find / -type d -name 'img' -ipath "*public_html/example.com*" 2>/dev/null
/home/tux/Public/public_html/example.com/font

Lo encontré

Este find Los comandos son una herramienta esencial para los administradores de sistemas. Es útil para investigar o aprender sobre nuevos sistemas, encontrar datos fuera de lugar y resolver problemas cotidianos. Pero también es solo una herramienta de conveniencia.

[ Download the Linux find cheat sheet to keep all these shortcuts in one place. ]

No necesita una «buena» razón para usar find. usar find Hace que sea más fácil buscar contenido en lugar de atravesar su sistema. Es una herramienta discreta pero infinitamente útil que representa la alegría sublime del Linux cotidiano.Empieza a usarlo hoy y luego Buscar lo que lo hace genial.

LEER  Cómo revertir una modernización de apt-get / apt en Debian / Ubuntu Linux

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba