Si es un usuario de Windows o un usuario no avanzado de OSX, probablemente use una GUI para buscar archivos. También puede encontrar la interfaz limitada, frustrante o ambas cosas, y ha aprendido a sobresalir organizando cosas y recordando el orden exacto de sus archivos. También puede hacerlo en Linux, pero no es obligatorio.
Una de las mejores cosas de Linux es que ofrece una variedad de formas de hacer las cosas. Puede abrir cualquier administrador de archivos y ctrl
+f
, puede usar el programa en el que se encuentra para abrir archivos manualmente, o simplemente puede comenzar a escribir letras y filtrará la lista del directorio actual.
Pero, ¿qué sucede si no sabe dónde está su archivo y no desea buscar en todo el disco? Linux está bien equipado para este y una variedad de otros casos de uso.
Encontrar ubicaciones de programas por nombre de comando
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
El sistema de archivos de Linux puede parecer desalentador si está acostumbrado a poner las cosas donde quiera. Para mí, una de las cosas más difíciles a las que me acostumbré fue encontrar dónde se supone que deben vivir los programas.
Por ejemplo, which bash
normalmente devolverá /bin/bash
, pero si descargas un programa y no aparece en tus menús, el which
comando puede ser una gran herramienta.
Una utilidad similar es locate
comando, que encuentro útil para encontrar archivos de configuración. No me gusta escribir nombres de programas porque son simples como locate php
a menudo ofrecen muchos resultados que deben filtrarse aún más.
Para más información sobre locate
y which
, ve al man
páginas:
man which
man locate
Buscar
El find
La utilidad ofrece una funcionalidad mucho más avanzada. A continuación se muestra un ejemplo de una secuencia de comandos que instalé en varios servidores que administro para garantizar que exista un patrón específico de archivo (también conocido como glob) durante solo cinco días y que se eliminen todos los archivos más antiguos. (Desde su última modificación, se utiliza un decimal para contabilizar hasta 240 minutos de diferencia).
find ./backup/core-files*.tar.gz -mtime +4.9 -exec rm {} \;
El find
La utilidad tiene muchos casos de uso avanzados, pero el más común es ejecutar comandos en los resultados sin encadenar y filtrar archivos por tipo, creación y fecha de modificación.
Otro uso interesante de find
es encontrar todos los archivos con permisos ejecutables. Esto puede ayudar a garantizar que nadie instale mineros de bitcoin o botnets en sus costosos servidores.
find / -perm /+x
Para obtener más información sobre find
, ve al man
página usando man find.
Grupo
¿Quieres encontrar un archivo por su contenido? Linux lo tiene cubierto. Puede usar muchas utilidades de Linux para buscar de manera eficiente archivos que coincidan con un patrón, pero grep
es uno que uso a menudo.
Suponga que tiene una aplicación que envía mensajes de error con una referencia de código y un seguimiento de la pila. Los encuentra en sus registros. Grepping no siempre es lo mejor, pero siempre grep -R
si el problema es con un valor proporcionado.
Un número cada vez mayor de IDE está implementando funciones de búsqueda, pero si está accediendo a un sistema remoto o por cualquier motivo no tiene una GUI, o si desea iterar en el lugar, use: grep -R {searchterm}
o en sistemas compatibles con egrep
alias; solo agrega -e
bandera para comando egrep -r {regex-pattern}
.
Usé esta técnica al parchear el dhcpcd5
en Raspbian el año pasado para poder seguir operando un punto de acceso a la red en versiones más recientes de Debian de la Fundación Raspberry Pi.
¿Qué consejos te ayudan a buscar archivos de manera más eficiente en Linux?