GNU/Linux >> Tutoriales Linux >  >> Linux

Encuentra archivos y directorios en Linux como un profesional

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 el find 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 de N hace días (para más de).
  • -mtime -N encuentra los archivos modificados menos de N 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-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 findlocate . 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.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Cómo encontrar los principales directorios y archivos (espacio en disco) en Linux

  3. Linux:¿directorios estándar y/o comunes en sistemas operativos Unix/linux?

  4. Comandos de búsqueda de Linux

  5. Linux Eliminar archivos y directorios

Cómo cambiar el nombre de archivos y directorios en Linux

Comando Ls en Linux (Lista de archivos y directorios)

Cómo comprimir archivos y directorios en Linux

3 formas de encontrar archivos y directorios en Linux

Cómo encontrar y eliminar directorios vacíos en Linux

Encuentre archivos y directorios en Linux fácilmente