Bup bip bop… iniciando secuencia 42…
¡Llegaron los robots! Han tomado el control y tradujeron esta página a tu idioma local. Sus corazoncitos de metal solo tienen las mejores intenciones. ¡Quieren ayudar! Dinos si están haciendo un buen trabajo con los botones al final de la página. Ve a la versión en inglés

Cómo buscar archivos en Linux

Recordar dónde se encuentra un archivo concreto en la instalación de Linux puede ser bastante difícil y buscar manualmente a través de un árbol de directorios masiva es un proceso muy laborioso. Por lo tanto, ¿cómo puede hacer búsquedas en Linux? Afortunadamente, Linux ofrece algunas herramientas muy fácil de usar para buscar archivos a lo largo de toda su distribución.

DIFICULTAD Básico - 1 | Medio - 2 | Avanzado - 3
TIEMPO NECESARIO 15 min
PRODUCTOS RELACIONADOS Servidores dedicados o VPS basados en Linux
Compartida basada en Linux alojamiento con SSH habilitado

Cómo buscar archivos en Linux

El comando Buscar es la herramienta principal que se utiliza para buscar archivos en cualquier lugar en el equipo. A lo más básico, buscar se ejecuta utilizando la sintaxis siguiente:

find [path] [flags]

pathy flags son ambos opcionales por defecto buscar volverá de forma recursiva la ruta de acceso de todos los archivos en el directorio actual y a sus subdirectorios:

./.bashrc
./.ssh
./.ssh/authorized_keys
./.monit.state
./.aptitude
./.aptitude/cache
./.aptitude/config
./.profile
./.psql_history
./.gem
...

Buscar por nombre

Para buscar archivos con un nombre determinado utilice la -name indicador seguido del texto de búsqueda. Por ejemplo:

find -name foo
./misc/foo

Todos los archivos encuentra en el directorio actual con el nombre exacto de foo. En este caso se encuentra un único archivo en mi directorio misc. Con el -iname indicador en su lugar utiliza una búsqueda de mayúsculas y minúsculas:

find -iname FoO
./misc/foo

Utilizando un asterisco (*) le permite buscar mediante caracteres comodín:

find -name foo*
./misc/foobar.txt
./misc/foobar.sh
./misc/foo
./misc/foobar

Buscar por ubicación

Buscar fuera de su directorio actual a menudo es obligatorio y fácilmente se puede realizar mediante la opción de ruta de acceso inmediatamente después del comando Buscar.

Por ejemplo, para buscar archivos en todo el sistema, utilice una / path opción:

find / -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
/usr/lib/node_modules/npm/node_modules/semver/foot.js
/usr/share/automake-1.14/am/footer.am
/usr/share/doc/xml-core/examples/foo.postrm
...

Puede restringir la ruta de búsqueda hacia abajo según sea necesario, en este caso buscar esos mismos archivos ubicados en el directorio raíz, misc:

find ~/misc -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar

Incluso puede usar varios paths en el comando Buscar en dos o más ubicaciones específicas. Aquí estamos buscando en la raíz, misc y los directorios usr:

find ~/misc /usr/share/doc -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
/usr/share/doc/xml-core/examples/foo.postrm
/usr/share/doc/xml-core/examples/foo.xmlcatalogs
/usr/share/doc/xml-core/examples/foo.postinst
/usr/share/doc/xml-core/examples/foo.prerm
/usr/share/doc/m4/examples/foo

Buscar por tipo

Otro indicador común para estrechar la búsqueda es -type , que le permite buscar archivos en función de los identificadores basados en Unix asociados con todos los archivos.

Por ejemplo, puede utilizar el -type d indicador para buscar sólo los directorios que cumplen los criterios:

find / -type d -name foo*
/root/misc/foobar

La lista completa de los identificadores utilizados para seguir la -type indicador puede encontrarse en la página de comando man, pero algunos de los más comunes son:

  • -type dpara directorios
  • -type fpara los archivos
  • -type lpara los vínculos simbólicos

Buscar por tiempo

Buscar archivos en función del tiempo que se crearon o modificaron puede ser una herramienta muy útil para analizar los registros o los cambios en un directorio determinado.

Hay tres categorías de comandos de búsqueda basado en tiempo: acceso, cambio y modificación. Todo tiempo tres categorías también tienen dos categorías secundarias para determinar el intervalo de tiempo está buscando: min para buscar por minutos y tiempo para buscar por días.

El argumento numérico (n) para marcas de tiempo puede ser neutro, positivo o negativo:

  • nBusca un período de tiempo que coincida exactamente con n.
  • +nbusca en los períodos de tiempo mayores que n.
  • -nBusque períodos de tiempo menor que n.

Por ejemplo, utilizando la -atime indicador le permite buscar archivos en función de la hora última se leyó o se escriben en el archivo. Para buscar todos los archivos denominado foo que se tenía acceso hace menos de 1 día, escriba:

find / -atime -1 -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar

Para encontrar todos los nombre de foo archivos acceso dentro del último uso de 45 minutos el -amin de la bandera en su lugar:

find / -amin -45 -name foo*
/root/misc/foo

También puede utilizar el -cmin y -ctime indicadores de la misma manera para buscar archivos basándose en la última vez que los datos del archivo inode se cambió (generalmente cuando el archivo se movió a una nueva ubicación dentro del sistema).

Después de mover el archivo foobar.txt es ahora entre los resultados de búsqueda para todos los archivos denominado foo que se cambiaron en los minutos de last10:

mv /root/misc/foobar.txt /root/other/foobar.txt
find / -cmin -10 -name foo*
/root/other/foobar.txt

Marca el tiempo final de -mmin y -mtime permiten buscar archivos en función de la última vez que se modificó el contenido del archivo.

Después de utilizar el gato > comando para agregar texto nuevo para el archivo foobar.txt, ahora ubicado al buscar archivos que se modificaron en los últimos 5 minutos:

cat > ~/other/foobar.txt
This is a new line.
ctrl+c
find / -mmin -5 -name foo*
/root/other/foobar.txt

Buscar por el contenido del archivo

Si desea buscar archivos basados en el contenido de texto real dentro del archivo puede combinarse el comando Buscar con otros comandos de unix utilizando la -exec indicador.

Por ejemplo, combinando -exec con muy poderosa herramienta grep, puede encontrar todos los denominada foo archivos como antes que también contienen texto concreto:

find / -type f -name foo* -exec grep -i "My favorite foods are" /dev/null {} +
/root/misc/foobar.sh:My favorite foods are:
/root/misc/foo:My favorite foods are:
/root/other/foobar.txt:My favorite foods are:

El comando completo parece desalentadora, pero realmente sólo consta de dos partes básicas:

find / -type f -name foo*

Que es la funcionalidad básica del comando Buscar cubierto hasta ahora en que este tutorial, aquí estamos buscando todos los archivos de la typefile cuyos nombres empiecen por foo.

-exec grep -i "My favorite foods are" /dev/null {} +

La última mitad del comando utiliza el nuevo -exec indicador, seguido por el comando de unix que desea ejecutar en los resultados de buscar. En este caso es el componente clave:

grep -i "My favorite foods are"

Realiza una búsqueda en el contenido de los archivos (minúsculas debido a la -i indicador) para el texto "Mis comidas favoritas son".

Ahora ejecuta el mismo comando, pero en su lugar buscando "apple" vemos que hay sólo dos archivos que tienen apple aparece como uno de los alimentos favoritos:

find / -type f -name foo* -exec grep -i "apple" /dev/null {} +
/root/misc/foobar.sh:apple
/root/other/foobar.txt:apple

Aunque esto es sólo una breve introducción del uso de -exec de búsqueda grep indicador dentro de su búsqueda, le ofrece un muy alto nivel de versatilidad y potencia en las búsquedas.

Ahora vaya hacia delante y encontrar esos archivos!


¿Este artículo fue útil?
Gracias por tus comentarios
¡Nos complace haber ayudado! ¿Hay algo más que podamos hacer por ti?
Lo sentimos. ¿Cómo podríamos ser de más utilidad?