Este tutorial se centra en cómo encontrar archivos en Linux utilizando los comandos buscar y localizar.

como administrador del sistema, es una tarea muy común buscar un archivo específico en su sistema de archivos.

sin embargo, a veces puede ser difícil encontrar archivos en un sistema de archivos Linux, especialmente si tiene docenas de usuarios diferentes.

Hay dos comandos que pueden ayudarte a lograr tu objetivo: buscar y localizar.,

en este tutorial, vamos a ver cómo usar esos comandos de manera efectiva y cómo se pueden ajustar para lograr lo que estamos buscando.

Tabla de Contenidos

Buscar Archivos usando el comando Find

El primer paso para encontrar y localizar los archivos en un host Linux es utilizar el comando buscar.,

de forma predeterminada, el comando find está disponible en todas las distribuciones y tiene la siguiente sintaxis

$ find <options> <path> <expression>

consejo rápido: ¿tiene problemas para recordar si la ruta o la expresión son lo primero?

recuerde que para grEP es la expresión Path, y find es lo contrario,por lo que la expresión Path!

Find es un comando bastante potente, ya que tiene muchas más opciones que el comando locate.

Aquí están todas las posibilidades de la función find en Linux.,

buscar archivos con buscar por nombre de archivo

el uso más común de la función Buscar es localizar archivos dados sus nombres de archivo.

$ find <path> -name <pattern>

la principal diferencia entre find y locate cuando se trata de buscar archivos es que find buscará nombres de archivo mientras que locate buscará rutas al archivo.

por ejemplo, si volvemos al ejemplo de nivel de ejecución que usamos antes, Aquí le mostramos cómo buscar archivos de nivel de ejecución usando el comando find.,

$ find / -name runlevel*

¿Cuál es el «2> /dev/null» parte?

redireccioné la salida de error a /dev / null usando la redirección de salida para evitar mensajes de error en la consola.

buscar archivos usando buscar por tipo de archivo

Como hemos comentado anteriormente en nuestro artículo sobre enlaces duros y blandos, los archivos se asignan tipos de archivos y se utiliza como una forma de diferenciarlos.,

Aquí está un resumen de todos los tipos de archivos usados en Linux.

  • f : un archivo estándar
  • d : una carpeta o directorio
  • l : un enlace simbólico o enlace suave
  • b : dispositivos de bloque (como un disco duro, por ejemplo)
  • c : dispositivos de caracteres (puertos serie, tarjetas de sonido)
  • p : tubería con nombre
  • s : socket

conociendo todos esos tipos de archivos, ahora puede buscar archivos por tipo de archivo con el comando find.

$ find <path> -type <filetype>

Por ejemplo, si queremos buscar todos los enlaces simbólicos en el host, se utilizaría el siguiente comando.,

$ find / -type l

Los parámetros se pueden combinar, por ejemplo si estoy buscando todos los enlaces simbólicos cuyos nombres de archivo terminan con».service » (para aislar todos los servicios de systemd, por ejemplo), ejecutaría el siguiente comando.

$ find / -type l -name *.service

Buscar archivos utilizando un patrón (por extensiones)

de manera Similar a la de localizar el comando, usted es capaz de encontrar archivos en Linux usando un patrón.

como recordatorio, un patrón es una cadena que incluye caracteres globbing (como *, ?,, o rangos).

esta opción es particularmente cuando está tratando de encontrar archivos con una extensión, por ejemplo, archivos Javascript.

Para buscar archivos en Linux usando un patrón, ejecute el siguiente comando

$ find <path> -name ".<extension>"
$ find / -name "*.js"

Archivos de archivos en Linux por el propietario

a Veces, quieres aislar los archivos creados por un determinado usuario.

al eliminar un usuario en su host, es posible que desee eliminar todos los archivos asociados con este usuario, por ejemplo.,

a veces, los usuarios crean archivos desde su directorio personal y eliminar un directorio personal de usuario no es suficiente por sí mismo.

como consecuencia, para encontrar archivos creados por un determinado usuario en Linux, ejecute el siguiente comando

$ find <path> -user <user>

por ejemplo, para encontrar todos los archivos propiedad de «john» en mi host, ejecutaría el siguiente comando.

$ find / -user john

Ahora lo que si quiero borrar todos los archivos de propiedad de john con un simple comando?,

se puede lograr fácilmente utilizando el indicador eliminar.

$ find / -user john -delete

buscar archivos en Linux mediante permisos

con el comando Buscar, también puede encontrar y localizar archivos que tienen ciertos permisos en su host.

$ find <path> -perm <permissions>

como recordatorio, así es como funcionan los permisos de archivos en Linux.

para encontrar todos los archivos que tienen permisos completos (un 777 dada la notación binaria), puede ejecutar el siguiente comando.,

$ find / -perm 777

puede ser muy útil si por razones de seguridad desea inspeccionar si no hay archivos configurados con permisos completos en su sistema.

Buscar archivos con buscar por tamaño

Otra forma muy práctica para encontrar y localizar archivos en Linux es encontrar el comando buscar con la opción de tamaño.

la opción Tamaño le permite buscar archivos que tengan exactamente el tamaño que está especificando, mayor que un tamaño específico o menor que un tamaño específico.,

buscar archivos por tamaño, utilice el siguiente comando

$ find <path> -size <size>

El tamaño se define por los siguientes prefijos :

  • c: bytes
  • b: bloques de 512 bytes
  • k: Kilobytes
  • M: Megabytes
  • G: Gigabytes

Se puede especificar un «+» si usted está buscando para archivos mayores que el tamaño especificado.,

por ejemplo, para encontrar archivos de más de 1 GB en su sistema, ejecute el siguiente comando

$ find / -size +1G

para encontrar archivos de menos de 10 MBs en su sistema, ejecute el siguiente comando

$ find / -size -10M

finalmente, para buscar archivos que sean exactamente del tamaño especificado en la consulta, no debe agregar o menos prefijos al comando.

$ find / -size 1024k

El comando define encontrará todos los archivos que son exactamente 1024 Kbs de tamaño en su host.,

buscar archivos en Linux por fecha de modificación

Con El find, también puede encontrar archivos con una fecha de modificación, reciente o no.

Este comando es muy útil y utilizado muy a menudo por los administradores del sistema para encontrar archivos o directorios que han sido modificados recientemente.

para buscar archivos usando buscar por fecha de modificación, ejecute el siguiente comando

$ find <path> -mtime <time>

donde time representa los archivos modificados 24*<time> hace horas.

Como consecuencia, el tiempo se expresa en días.,

de manera Similar a la opción de tamaño, puede añadir un «plus» o «menos» operador a la hora de buscar archivos modificados de más de <tiempo> días, o menos de <tiempo> hace días.

por ejemplo, para buscar archivos modificados exactamente hace 3 horas, debe ejecutar el siguiente comando.,

$ find / -mtime 3

para encontrar archivos modificados hace más de una semana, ejecutará el siguiente comando

$ find / -mtime +7

para encontrar archivos modificados hace menos de dos días, ejecutará el siguiente comando

$ find / -mtime -2

buscar archivos con profundidad dinámica

como probablemente notaste, desde el comienzo de este tutorial, estamos dando ejemplos de búsquedas de archivos a partir del directorio raíz.

como consecuencia, todas las carpetas se navegan recursivamente.,

sin embargo, podemos restringir el número de directorios recursivamente recorridos desde un directorio, esto se llama la profundidad.

para limitar las búsquedas de archivos a una profundidad determinada, ejecute la siguiente consulta

$ find <path> -maxdepth <depth>

como ejemplo, aquí se muestra cómo puede restringir las búsquedas de archivos al directorio actual, sin que se exploren directorios secundarios.

$ find / -maxdepth 1

obviamente puede combinar este comando con el indicador de nombre para buscar archivos con un nombre dado en el directorio actual.,

$ find . -maxdepth 1 -name *.tar

el Encadenamiento de encontrar con -exec

En algunos casos, usted puede encontrar útil de la cadena el comando find con el exec uno.

la opción exec se puede usar para encadenar varios comandos : tomando el resultado del primero como entrada del segundo.,

digamos por ejemplo que desea encontrar todos los archivos modificados hace menos de un minuto

$ find /home/user -mmin -1./file1

Ahora digamos que desea eliminar todos los archivos que se modificaron hace menos de un minuto.

puede encadenar el comando find con la opción-exec usando esta sintaxis.

$ find /home/user -mmin -1 -exec echo rm -f '{}' \;

obviamente, el primer «eco» de los resultados, ya que queremos asegurarnos de que estamos borrando los archivos correctos.,

cuando esté listo para eliminar esos archivos, simplemente elimine el comando echo.

$ find /home/user -mmin -1 -exec rm -f '{}' \;

Encuentra archivos en Linux usando el comando Locate

otra gran manera de encontrar y localizar archivos en Linux es usar el comando locate.

Requisitos

Si el comando locate no está disponible en su sistema, asegúrese de leer la siguiente sección para obtener busque ejecutando en el sistema.,

a – Instalación de Locate en distribuciones basadas en APT y RPM

para instalar locate, necesitará privilegios sudo en su host Linux.

para comprobar si locate está instalado en el host, ejecute el comando locate en la línea de comandos.,

$ locate

Si busque está instalado en su equipo, se espera una expresión para siempre

Si busque no está instalado en el host, un mensaje de error se mostrará

Para instalar busque en Ubuntu 18.04 y Debian 10, ejecute el siguiente comando.,

$ sudo apt-get install mlocate

de manera similar, si está en una distribución basada en CentOS o Fedora, ejecute el siguiente comando para instalar locate.

$ sudo yum install mlocate

B – actualizar su base de datos mlocate

la función locate funciona con una base de datos local almacenada en su sistema de archivos que almacena cada nombre de archivo de su host.

al ejecutar un comando locate, locate buscará en la base de datos preparada por updatedb el archivo que está buscando.

periódicamente, un trabajo cron actualiza el mlocate.archivo db para buscar las entradas más recientes.,

La base de datos se encuentra en /var/lib/mlocate/mlocate.db por defecto y el archivo de configuración updatedb se almacena en /etc / updatedb.conf.

por ahora, puede dejar las opciones predeterminadas y ejecutar un simple comando updatedb para que su base de datos se actualice.

$ sudo updatedb

Localice los archivos de un patrón de nombre

La forma más básica para buscar archivos en Linux es proporcionar un patrón para el comando locate.,

de forma predeterminada, la sintaxis del comando locate es la siguiente

$ locate ... ...

Si está buscando un archivo de configuración determinado en su sistema, una forma fácil de encontrarlo es proporcionar su nombre de archivo completo al comando locate.

$ locate updatedb.conf

Como puede ver, el comando locate es devolver la completa rutas de acceso para el archivo que estoy buscando.,

busque archivos en directorios restringidos

a veces, es posible que no tenga acceso a algunos directorios en su sistema.

como consecuencia, no podrá localizar los archivos ubicados en él.

tomemos el ejemplo de una carpeta prohibida que contiene un archivo llamado «restricted-file».

Para localizar los archivos que se encuentran en directorios restringidos, usted tiene que ejecutar el comando locate con privilegios sudo.,

$ sudo locate restricted-file

Localice los archivos usando un patrón

Mediante el comando locate, puede proporcionar «patrones» en la forma de englobamiento de los personajes.

Los caracteres Globbing, también llamados comodines, son caracteres utilizados para hacer coincidir una o varias entradas con una expresión simplificada.

el más popular es el «*» que coincidirá con cualquier personaje, incluido ninguno.

Aquí hay una tabla de recapitulación para globbing caracteres y sus funciones.,6934f1″>

devdevco, matches one character given in the bracket ab aab, bab cab matches one character from the (locale-dependent) range given in the bracket runlevel runlevel1, runlevel2, runlevel6 runlevels, runlevelo

As an example, here’s a way to locate all text files on your system.,

$ locate *.txt

Localice los archivos usando una expresión regular

Como se indica en el hombre oficial de la página para buscar, localizar el comando acepta un patrón de entrada.

significa que puede proporcionar una expresión regular al comando locate.

para buscar y localizar archivos con una expresión regular, utilice la opción-expresión regular para el comando localizar.,

$ locate --regex <regex>

por ejemplo, para aislar todos los archivos que comienzan con runlevel seguido de un número, debe ejecutar el siguiente comando.

$ locate --regex runlevel+

Cuando el uso de expresiones regulares, hay un punto importante que usted debe ser consciente de la hora de localizar los archivos.

el comando locate busca rutas a los archivos en su base de datos local.,

como consecuencia, al buscar archivos, debe tener en cuenta que su expresión regular tiene que coincidir con la ruta al archivo y no solo con el nombre del archivo.

por ejemplo, si busco archivos que comienzan con «run», no se devolverán resultados ya que la ruta al archivo comienza con»/usr».

localice archivos usando la opción que no distingue entre mayúsculas y minúsculas

al buscar archivos en su sistema de archivos, es posible que no esté seguro de la forma en que se nombró un archivo determinado.,

¿se escribió en mayúscula o en minúscula? ¿Contiene alguna letra mayúscula?

para buscar y localizar archivos utilizando una opción que no distingue entre mayúsculas y minúsculas, añada la opción-i al comando locate.,

$ locate -i <file_pattern>

Buscar archivos por contenido el uso de grep

En algunos casos, usted puede estar interesado en la búsqueda de los archivos que coinciden con una palabra de la frase que se encuentra DENTRO del archivo.

esto puede suceder, por ejemplo, si está tratando de encontrar el archivo que contiene eventos de registro específicos.,

la primera forma de buscar archivos que coincidan con una palabra específica es usando el comando grep

$ grep -r <pattern> <path>

nota : no olvide la opción «-r» Si está buscando archivos a través de directorios completos.

Por ejemplo., si está buscando todos los archivos que tienen «error» en su contenido, ubicado en su directorio personal, escribiría

$ grep -r error /home/user

en algunos casos, es posible que desee buscar archivos con una expresión regular.

para encontrar archivos usando una expresión regular, use la opción «- E».,

$ grep -r -E <expression> <path>

digamos, por ejemplo, que desea encontrar el archivo que coincida con el patrón ‘abc’ en uno de sus archivos, escribiría

$ grep -r -E "abc.*" --color /home/user

nota : la opción color se utiliza para resaltar las coincidencias utilizando el comando grep.,

Buscar archivos mediante la cual

Otra gran manera para buscar archivos en Linux es usar el comando which.

El comando que se utiliza para localizar los archivos asociados con un comando específico.

esto puede ser muy útil cuando no sabe dónde almacenó sus binarios para un comando o si necesita localizar un comando para agregarlo a su ruta.,

$ which <command>

por ejemplo, para buscar archivos asociados al comando «ls», escribiría

$ which ls/usr/bin/ls

como puede ver, se le da la ruta completa al archivo.

localice binarios usando whereis

del mismo modo, es completamente posible buscar archivos usando el comando whereis.

el comando » whereis «puede verse como un superconjunto del comando» which»:» whereis » proporciona información sobre el nombre del comando, la ubicación del archivo, así como la ubicación de las páginas de manual.,

para ejecutar whereis, simplemente escriba «whereis» y añada el nombre de su comando.

$ whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

bastante útil!

conclusión

en el tutorial de hoy, aprendiste cómo puedes encontrar y localizar archivos en Linux usando dos comandos importantes : localizar y encontrar.

incluso si las opciones se presentan individualmente, debe recordar que se pueden combinar para poder especificar aún más los archivos que está buscando.

como siempre, si está interesado en la administración de sistemas Linux, tenemos una sección completa dedicada a Linux en nuestra página web.,

As always, here is a short video on the subject in case you prefer Youtube videos.

Deja una respuesta

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