Bip bip bip... procesando... procesando... iniciando secuencia 42...
¡Vaya, parece que esos robots han vuelto a hacer de las suyas! Han tomado el control y han traducido esta página web a tu idioma local. Pero en realidad sus corazoncitos de metal solo albergan las mejores de las intenciones. ¡Solo quieren ayudar! Cuéntanos cómo se portan los robots a través de los botones en la parte inferior de la página. Ir 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 Basic - 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]

path y 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 uso del -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. Mediante la -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 coinciden con sus 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 d para directorios
  • -type f para los archivos
  • -type l para 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:

  • n Busca un período de tiempo que coincida exactamente con n.
  • +n busca en los períodos de tiempo mayores que n.
  • -n Busque períodos de tiempo menor que n.

Por ejemplo, mediante el -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 indicador 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 en función de la última vez que se ha cambiado los datos del archivo inode (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

Los indicadores de 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, mediante la combinación -exec con muy eficaz herramienta de 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 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!


¿Te fue útil este artículo?
Gracias por tus comentarios. Si deseas contactar a un agente del servicio de atención al cliente, llama a atención al cliente o usa la opción de chat que aparece arriba.
Nos alegramos de poder haberte ayudado. ¿Podemos hacer algo más por ti?
Disculpa las molestias. Cuéntanos si algo no te ha quedado claro o si no has podido solucionar el problema con la solución ofrecida .