4 grandes herramientas para encontrar archivos rápidamente en Ubuntu

Muchos de ustedes, compañeros usuarios de Ubuntu, estarán familiarizados con la herramienta «Buscar archivos» que le permite buscar archivos. Como es cierto con la mayoría de las cosas en Linux, hay grandes herramientas de escritorio, pero más poder se puede encontrar en la Terminal que cualquier herramienta de escritorio racionalizado puede igualar.

Hoy, me gustaría presentarles a algunas herramientas que pueden convertir una tarea de búsqueda de archivos en un proceso fácil.

locate

La primera herramienta con la que usted debe sentirse cómodo es también uno de los más simples. El programa locate funciona de manera similar a la mayoría de las herramientas de búsqueda gráfica.

Usar

Digamos que ha leído sobre cómo modificar X para proporcionar un rendimiento de vídeo mejorado. El documento que está leyendo dice que debe modificar el archivo xorg.conf, pero el documento no dice dónde está y usted no sabe cómo encontrarlo. Puedes usar locate para encontrarlo rápidamente:

$ locate xorg.conf/etc/X11/xorg.conf/usr/share/man/man5/xorg.conf.5.gz/var/lib/x11/xorg.conf.md5sum/var/lib/x11/xorg.conf.roster

Está claro que /etc/X11/xorg.conf es el archivo que buscamos, pero ¿qué pasa si se devuelven docenas o incluso cientos de resultados? ¿Cómo se podría gestionar todo eso? Si sabes un poco sobre expresiones regulares (todo usuario de Linux debería aprender lo básico), puedes usar fácilmente expresiones regulares para buscar directorios o archivos. Por ejemplo, podemos buscar una coincidencia exacta para xorg.conf con el siguiente comando:

$ locate -r '/xorg.conf$'/etc/X11/xorg.conf

Si quieres buscar archivos sin distinguir entre mayúsculas y minúsculas, puedes usar la opción -i. Por ejemplo:

$ locate -i 'monthly report'/home/chris/Documents/August Monthly Report.doc/home/chris/Documents/July Monthly Report.doc/home/chris/Downloads/latest monthly report.doc

Algo que puede confundirte cuando empiezas a usar locate es que no sólo devuelve coincidencias, sino que si la coincidencia es un directorio, también lista todos los directorios y archivos bajo ese directorio. Por ejemplo:

$ locate Desktop/home/chris/Desktop/home/chris/Desktop/Head Shot.jpg/home/chris/Desktop/Skype.lnk/home/chris/Desktop/Steam.lnk...

Este comando devuelve más de mil entradas en mi sistema. Para reducir los resultados a una lista de entradas que coinciden con el término de búsqueda sin todos los archivos y directorios contenidos, utilice la opción -b:

$ locate -b Desktop/home/chris/Desktop/home/chris/bin/recordSoundAndDesktop.sh/opt/HipChat4/lib/QtQuick/Controls/Styles/Desktop/usr/include/qt4/QtGui/QDesktopServices/usr/include/qt4/QtGui/QDesktopWidget/usr/lib/libreoffice/program/wizards/common/Desktop.py/usr/lib/libreoffice/share/gallery/computers/Computer-Desktop.png/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.py/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.pyc/usr/lib/python3/dist-packages/xdg/DesktopEntry.py/usr/lib/python3/dist-packages/xdg/__pycache__/DesktopEntry.cpython-35.pyc/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Styles/Desktop/usr/share/kde4/apps/kio_desktop/DesktopLinks/usr/share/man/man3/File::DesktopEntry.3pm.gz/usr/share/perl5/File/DesktopEntry.pm/usr/share/sounds/KDE-Window-All-Desktops-Not.ogg/usr/share/sounds/KDE-Window-All-Desktops.ogg

Todavía hay bastantes coincidencias, pero ya no tenemos que ordenar todos los resultados adicionales para encontrar lo que estamos buscando.

Nota importante

El comando locate se basa en una base de datos slocate para funcionar. Esta base de datos almacena en caché los nombres de los directorios y archivos del sistema de archivos y permite que el comando locate funcione en momentos en lugar de tomar largos períodos de tiempo para buscar en todo el sistema de archivos.

Sin embargo, esta capacidad no viene sin costo. Por defecto, su sistema ejecutará un comando para actualizar esta base de datos una vez al día a las 6:25am. Este comando actualizará la base de datos con cualquier cambio realizado en el sistema de archivos desde la última actualización.

Si ha realizado cambios recientemente, como añadir o eliminar grandes cantidades de archivos y directorios, y desea utilizar el comando locate para buscar en estos nuevos directorios y archivos, puede actualizar manualmente la base de datos slocate en cualquier momento con el siguiente comando:

$ sudo updatedb

Dependiendo del volumen de cambios realizados desde que la base de datos slocate se actualizó por última vez, esto podría tardar entre unos segundos y unos minutos en actualizarse. Una vez hecho esto, está listo para buscar de nuevo con locate.

que

locatees ideal para buscar en todo el sistema de archivos. Sin embargo, a veces sólo quieres encontrar dónde vive un comando. Ahí es donde which entra en juego.

which sólo hace una cosa, pero lo hace bien. Dado el nombre de un comando, que le dirá donde el archivo para ese comando reside en el sistema de archivos.

Imaginemos que queremos averiguar donde reside el comando firefox. Podemos simplemente ejecutar lo siguiente para averiguarlo:

$ which firefox/usr/bin/firefox

¿Por qué querrías buscar específicamente un comando? Imagina que tienes un código que necesita reemplazar un comando antiguo. Realmente necesitas eliminar el antiguo (yo suelo renombrarlo con el mismo nombre seguido de «.bak» para tenerlo cerca en caso de necesitarlo) primero antes de poner el nuevo en su lugar. which te ayudará a encontrar el archivo rápida y fácilmente para que no tengas que buscar por todas partes para encontrarlo.

whereis

El comando whereis es similar a which pero va un paso más allá. No sólo le dice dónde se encuentra el archivo ejecutable, sino que también localizará el código fuente, la página man y otros directorios asociados.

Siguiendo con el ejemplo de which, preguntemos a whereis sobre el comando firefox:

$ whereis firefoxfirefox: /usr/bin/firefox /usr/lib/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz

Esto me ayudó a encontrar /usr/lib/firefox/plugins antes cuando trabajaba en la solución para Flash, ya que esa ubicación es donde se almacenan los complementos globales para Firefox.

find

find es la herramienta de búsqueda definitiva, la navaja suiza de la búsqueda en Linux si se quiere. find puede hacer de todo, desde buscar archivos basándose en la última vez que fueron modificados, propietarios y grupos, permisos, tipo (archivo, directorio, enlace simbólico, etc), si el archivo es legible/escribible/ejecutable por el usuario actual, tamaño del archivo, si el archivo o directorio está vacío, y mucho más. También puedes buscar coincidencias por expresión regular.

Cuando utilizas esta herramienta en combinación con el comando xargs (del que tendré que hablar en otro momento), puedes hacer cosas realmente sorprendentes en la línea de comandos. Imagina poder buscar recursivamente en el directorio actual los archivos que terminan en «.bak» que fueron modificados por última vez hace más de 100 días y luego borrarlos con un solo comando:

$ find . -name '*.bak' -type f -mtime +100 -print0 | xargs -0 /bin/rm -f

Al principio parecerá muy complejo, pero cuando domines el arte de usar find, se convertirá en algo natural. Pronto, te preguntarás cómo has podido buscar cosas sin él.

Para ser franco, hay mucho más que encontrar de lo que estoy dispuesto a cubrir y hay muchas, muchas grandes introducciones a la herramienta que hacen un mejor trabajo de lo que yo haría. Por lo tanto, simplemente voy a señalar a tres grandes referencias que se pueden utilizar para ponerse en marcha con find.

  • Ejemplos de uso del comando Linux find
  • (Me disculpo por los colores horribles de antemano) Tutorial del comando Unix/Linux «find»
  • Usando el comando find

Feliz búsqueda.

¿Te he ayudado?

  • Envíame un consejo a través de Paypal.
  • Ayuda con el alojamiento de este sitio con mi código de referencia Linode.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.