Esta guía le mostrará cómo usar los comandos "buscar" y "ubicar" para encontrar archivos y directorios en sus sistemas de archivos de Linux.
Índice
- Encuentre archivos y directorios en Linux usando el comando find
- Buscar archivos por nombre
- Buscar archivos por nombre parcial
- Buscar archivos por tamaño
- Buscar archivos usando marcas de tiempo
- Buscar archivos por propietario
- Buscar archivos por permisos
- Buscar directorios por nombre
- Encuentre archivos y directorios en Linux utilizando el comando de localización
- Buscar archivos por nombre
- Buscar archivos por nombre parcial
- Limitar resultados de búsqueda
- Mostrar el número de entradas coincidentes
- Obtener información sobre la base de datos de localización
- Conclusión
Hay momentos en los que desea acceder a un archivo específico pero no puede encontrarlo en su sistema Linux. Si bien hay muchas formas de buscar y localizar archivos y directorios en Linux, la más fácil y rápida es probablemente a través de la terminal.
El find
command es una de las utilidades de línea de comandos más importantes y utilizadas con más frecuencia en Linux.
Buscar archivos y directorios en Linux usando el comando buscar
Linux find
command es una poderosa herramienta que permite a los administradores de sistemas ubicar y administrar archivos y directorios en función de una amplia gama de criterios de búsqueda. Admite la búsqueda por archivo, carpeta, nombre, fecha de creación, fecha de modificación, propietario y permisos.
El find
El comando se utiliza para buscar archivos y directorios y realizar operaciones posteriores en ellos. Busca archivos y directorios en cada ruta de forma recursiva. Por lo tanto, cuando find
El comando encuentra un directorio dentro de la ruta dada, busca otros archivos y directorios dentro de él.
Buscar archivos por nombre
La sintaxis general de find
el comando es:
find [path] [options] [expression]
Analicemos esta sintaxis:
path
: define el directorio de inicio donde find buscará los archivos.options
: Controla elfind
comportamiento del proceso y método de optimización.expression
: Este atributo se compone de opciones, patrones de búsqueda y acciones separadas por operadores.
El uso más común del comando de búsqueda es buscar un archivo por su nombre. El -type f
La opción le dice al sistema que estamos buscando un archivo. Para encontrar un archivo usando el nombre de archivo, use el -name
bandera con el comando predeterminado.
Por ejemplo, para buscar un archivo llamado report.pdf
en el /home
directorio, usaría el siguiente comando:
find /home -type f -name report.pdf
Como sabe, Linux distingue entre mayúsculas y minúsculas en los nombres de archivo , por lo que si está buscando un archivo llamado Report.pdf
, el comando que se muestra arriba no arrojará resultados. En ese caso, deberá usar -iname
opción en lugar de -name
.
El -iname
La opción ejecuta una búsqueda que no distingue entre mayúsculas y minúsculas , entonces podemos hacer esto:
find /home -type f -iname report.pdf
Este comando ubicará un archivo que tenga cualquiera de los siguientes nombres:report.pdf
, Report.pdf
, REPORT.pdf
, etc.
Buscar archivos por nombre parcial
Puede usar metacaracteres de nombre de archivo como asterisco (*
), pero debe poner un carácter de escape (\
) delante de cada uno de ellos o escríbalos entre comillas.
Por ejemplo, para buscar todos los archivos que terminen en .pdf
, podría ejecutar:
find /home -type f -name '*.pdf'
que es lo mismo que:
find /home -type f -name \*.pdf
De manera similar, para encontrar todos los archivos en su sistema Linux cuyos nombres comienzan con report
, podría ejecutar:
find /home -type f -name 'report*'
Buscar archivos por tamaño
Usando find
comando, también podemos lograr fácilmente algo que puede parecer complicado:encontrar archivos más grandes o más pequeños que el tamaño dado .
El -size
opción en find
nos permite buscar archivos de un tamaño específico. El +
y -
los prefijos significan "mayor que" y "menor que", como de costumbre.
El siguiente ejemplo buscará todos los archivos de más de 1 Gigabyte. Tenga en cuenta el uso de +
firmar:
find /home -type f -size +1G
En el ejemplo anterior, el sufijo G
denota Gigabytes. Los otros sufijos populares disponibles son:
c
:bytes.k
:kilobytes.M
:Megabytes.
Lo anterior find
El comando se utilizó para buscar todos los archivos con un tamaño superior al especificado. A continuación, find
El ejemplo de comando buscará todos los archivos con menos de 200 Kilobytes de tamaño. Tenga en cuenta el uso de -
firmar:
find /home -type f -size -200k
Ahora probablemente te preguntes cómo encontrar archivos en Linux entre un tamaño determinado . Por ejemplo, puede buscar archivos de entre 100 megabytes y 120 megabytes de tamaño con el siguiente comando:
find /home -type f -size +100M -size -120M
Buscar archivos usando marcas de tiempo
Linux asigna marcas de tiempo específicas a todos y cada uno de los archivos del sistema de archivos. El find
El comando también puede buscar archivos en función de su última modificación , acceder o cambiar la hora.
El -mtime
La opción se utiliza para especificar el número de días de antigüedad que tiene el archivo. La expresión se puede utilizar de dos formas:
-mtime +N
encuentra los archivos modificados más deN
hace días (para más de).-mtime -N
encuentra los archivos modificados menos deN
hace días (por menos de).
Por ejemplo, si ingresa +3
, encontrará todos los archivos del /home
directorio de más de 3 días.
find /home -type f -mtime +3
Del mismo modo, si queremos encontrar todos los archivos que han cambiado en las últimas 24 horas:
find /home -type f -mtime -1
De la misma forma, puedes usar -mmin N
expresión para basarse en minutos en lugar de días.
Por ejemplo, este comando busca todos los archivos de /home
directorio modificado en el último minuto.
find /home -type f -mmin -1
Además, podemos incluso componer expresiones. Aquí se explica cómo encontrar archivos en Linux que se hayan modificado hace menos de 60 minutos y hace más de 30 minutos:
find /home -type f -mmin -60 -mmin +30
Buscar archivos por propietario
Para buscar archivos propiedad de un usuario o grupo en particular, use -user
y -group
opciones.
Por ejemplo, para buscar archivos propiedad del usuario john
en el /home
carpeta del servidor:
find /home -type f -user john
Encuentra todos los archivos que pertenecen a un grupo llamado www-data
en el /home
directorio:
find /home -type f -group www-data
Buscar archivos por permisos
El -perm
opción permite a los usuarios buscar archivos con un conjunto particular de permisos .
El siguiente comando encontrará los archivos con permiso de exactamente 644 en el directorio actual.
find /home -type f -perm 644
El uso de -
opción significa "al menos este nivel de permiso está configurado y cualquier permiso superior".
find /home -type f -perm -644
Este ejemplo muestra todos los recursos en /home
directorio con al menos 644
permisos Esto significa que los archivos con permisos como 777
, 745
, 666
, 655
, 654
, etc., coincidirían, mientras que los archivos con permisos 642
, 611
, 600
, 544
, etc., no coincidirían.
Buscar directorios por nombre
Todos los ejemplos que hemos visto hasta ahora devuelven archivos. Sin embargo, si solo necesita buscar directorios, puede usar -type d
cambiar.
En otras palabras, puede evitar que find
comando en Linux de buscar otros tipos de archivos, excepto directorios usando -type d
bandera (d
significa directorio).
Para encontrar una carpeta llamada scripts
en el /home
directorio, ejecute:
find /home -type d -name scripts
Del mismo modo, todas las demás opciones mostradas hasta ahora también son aplicables al buscar directorios.
Para obtener más información sobre find
comando en Linux, consulte su página de manual.
Buscar archivos y directorios en Linux usando el comando de localización
Mientras find
es sin duda una de las utilidades de línea de comandos más populares y poderosas para la búsqueda de archivos en Linux, no es lo suficientemente rápido para situaciones en las que necesita resultados instantáneos.
El locate
el comando es más rápido que find
comando porque utiliza una base de datos creada previamente, mientras que find
búsquedas de comandos en tiempo real, a través de todos los directorios y archivos reales.
Si locate
no está instalado, puede instalarlo fácilmente utilizando el administrador de paquetes de su distribución de Linux.
En Ubuntu o cualquier otro sistema basado en Debian, escriba el siguiente comando:
sudo apt install mlocate
Si está usando Fedora o CentOS, use este comando en su lugar:
sudo dnf install mlocate
Los usuarios de Arch Linux deben ejecutar:
sudo pacman -S mlocate
Antes de locate
se puede utilizar, será necesario crear la base de datos. Esto se hace con el updatedb
comando, que (como sugiere el nombre) actualiza la base de datos.
sudo updatedb
La base de datos se actualizará automáticamente a diario, pero también puede actualizarla usted mismo en cualquier momento para obtener resultados actualizados al minuto.
Buscar archivos por nombre
El locate
El comando es muy fácil de usar. Todo lo que tiene que hacer es pasarle el nombre de archivo que desea buscar.
locate report.pdf
Al igual que el find
comando, locate
está configurado para procesar consultas distinguiendo entre mayúsculas y minúsculas. Tener locate
comando ignorar mayúsculas y minúsculas y mostrar resultados para consultas en mayúsculas y minúsculas, debe usar -i
opción.
locate -i rEpoRT.pdf
Buscar archivos por nombre parcial
Si desea buscar todos los nombres de archivo que tienen la cadena .pdf
en ellos, entonces puedes hacerlo usando locate
de la siguiente manera:
locate '*.pdf'
Limitar resultados de búsqueda
Puede limitar sus resultados de búsqueda a un número obligatorio para evitar la redundancia con los resultados de búsqueda mediante -n
opción.
Por ejemplo, si solo quiere 10 resultados de sus consultas, puede escribir el siguiente comando:
locate -n 10 '*.pdf'
Mostrar el número de entradas coincidentes
Para contar el número de apariciones de un nombre de archivo o un patrón de búsqueda mediante el comando de localización, invoque -c
opción como se muestra.
locate -c '*.pdf'
Obtener información sobre la base de datos de localización
Para recopilar más información sobre la base de datos de localización mlocate.db
que locate
ha catalogado, use el -S
opción:
locate -S
Database /var/lib/mlocate/mlocate.db:
72376 directories
1142596 files
98622214 bytes in file names
33950606 bytes used to store database
En caso de que lo necesite, aquí está la página del manual para locate
comando.
Conclusión
Hay dos utilidades de búsqueda de archivos más utilizadas accesibles para los usuarios de Linux que se llaman find
y locate
. Ambas son buenas formas de encontrar archivos en su sistema. Depende de usted decidir cuál de estas herramientas es la adecuada en cada situación.
Este artículo debería brindarle una comprensión fundamental de cómo encontrar archivos en sus sistemas Linux. Incluso si la opción se presentara individualmente, debe recordar que se pueden combinar para poder especificar aún más los archivos que está buscando.