Enseñarle algunos trucos para encontrar directorios de manera eficiente en Linux

1. Introducción

Encontrar directorios es una tarea común en el sistema operativo Linux. Tanto si es un administrador del sistema como si es un usuario normal, es posible que necesite encontrar un directorio específico para realizar varias operaciones, como navegar por el sistema de archivos, realizar copias de seguridad de los datos, eliminar archivos, etc. Linux proporciona una variedad de comandos y herramientas para ayudarnos a encontrar rápidamente el directorio de destino en el sistema de archivos. Este artículo presentará varios métodos y comandos de uso común para ayudarlo a encontrar directorios de manera eficiente en Linux.

2. Usa findel comando

findCommand es una poderosa herramienta de búsqueda en el sistema Linux. Puede recorrer recursivamente el directorio especificado y buscar archivos y directorios según diferentes criterios.

2.1 Sintaxis básica

findLa sintaxis básica del comando es la siguiente:

find [path] [expression]

Entre ellos, pathestá la ruta del directorio de inicio para buscar, si se omite, la búsqueda comienza desde el directorio actual de forma predeterminada. expressiones una opción para especificar criterios de búsqueda, que pueden ser nombre de archivo, tipo de archivo, tamaño, permiso, etc.

2.2 Ejemplos

2.2.1 Buscar todos los subdirectorios bajo el directorio especificado

Para encontrar todos los subdirectorios en un directorio específico, puede usar el siguiente comando:

find /path/to/directory -type d

Este comando /path/to/directoryencontrará recursivamente todos los subdirectorios bajo el directorio y generará sus rutas.

Por ejemplo:

find /tmp -type d

producción:

2.2.2 Buscar directorios cuyo nombre de directorio contenga una cadena específica

Si solo desea buscar directorios cuyos nombres de directorio contengan una determinada cadena, puede utilizar -namela opción:

find /path/to/directory -type d -name "keyword"

Reemplace keywordcon la cadena que desea encontrar.

Por ejemplo:

find /tmp -type d -name "localhost"

producción:

2.2.3 Buscar el directorio del usuario especificado

Para encontrar un directorio para un usuario específico, puede usar -userla opción:

find /path/to/directory -type d -user username

Reemplace usernamecon el nombre de usuario del usuario de destino.

Por ejemplo:

find /tmp -type d -user root

producción:

2.2.4 Buscar directorios modificados dentro de un rango de fechas específico

También puede encontrar directorios modificados dentro de un rango de fechas específico. Por ejemplo, para buscar directorios modificados en los últimos 7 días:

find /path/to/directory -type d -mtime -7

Este comando devolverá los directorios que se han modificado en los últimos 7 días.

Por ejemplo:

find /tmp -type d -mtime -7

producción:

2.2.5 Enviar resultados de búsqueda a un archivo

Si desea enviar los resultados de la búsqueda a un archivo en lugar de mostrarlos en la terminal, puede usar el operador de redirección >:

find /path/to/directory -type d -name "keyword" > result.txt

Esto guardará los resultados de la búsqueda en result.txtun archivo llamado .

Por ejemplo:

find /tmp -type d -name "localhost" > result.txt

more result.txt

2.3 Más opciones

findCommand también admite muchas otras opciones, como buscar por tamaño de archivo, buscar por permisos, etc. Puede ver más opciones y ejemplos consultando findla página de manual del comando (usando el comando).man find

3. Usa locateel comando

locateLos comandos son otra forma rápida de encontrar directorios y archivos en Linux. A diferencia de findlos comandos, locatelos comandos utilizan una base de datos para acelerar el proceso de búsqueda.

Es posible que los servidores generales no tengan este comando, debe instalarlo:

apt install mlocate

3.1 Actualización de la base de datos

Antes de usar locateel comando, debemos asegurarnos de que la base de datos esté actualizada. La base de datos se puede actualizar con el siguiente comando:

sudo updatedb

Este comando requiere privilegios de administrador y regenerará la base de datos para incluir la información de archivo más reciente.

3.2 Buscar directorio

El comando para buscar directorios es el mismo que para buscar archivos, solo use -type dla opción para limitar los resultados de búsqueda a directorios:

locate -b '\keyword'

Reemplace keywordcon la cadena que desea encontrar.

3.3 Ignorar caso

De forma predeterminada, locatelos comandos distinguen entre mayúsculas y minúsculas. Si desea buscar sin importar el caso, puede utilizar -ila opción:

locate -i -b '\keyword'

3.4 Más opciones

locateEl comando admite algunas opciones adicionales, como limitar la cantidad de resultados de búsqueda, especificar un archivo de base de datos, etc. Puede ver más opciones y ejemplos consultando locatela página de manual del comando (usando el comando).man locate

4. Usa una combinación de findygrep

A veces, es posible que deba filtrar aún más los resultados de la búsqueda en categorías específicas. Esto se puede lograr usando una combinación del findcomando y el comando.grep

Por ejemplo, desea buscar todos los directorios /path/to/directorybajo el directorio .logque termina con:

find /path/to/directory -type d | grep ".log$"

El comando primero usará findel comando para buscar todos los directorios, luego pasará los resultados al grepcomando para filtrar.

5. Usa treeel comando

Si desea mostrar directorios y subdirectorios en una estructura de árbol, puede usar treeel comando. treeEl comando enumera recursivamente el contenido del directorio especificado y sus subdirectorios.

5.1 treeComando de instalación

En algunas distribuciones de Linux, treees posible que el comando no esté instalado de manera predeterminada. Puedes instalarlo con el siguiente comando:

En Ubuntu y Debian:

sudo apt-get update
sudo apt-get install tree

En CentOS y Fedora:

sudo yum install tree

5.2 Usando treeel comando

Usar treeel comando es muy simple. Simplemente especifique la ruta del directorio para buscar en:

tree /path/to/directory

treeEl comando mostrará recursivamente el contenido del directorio especificado y sus subdirectorios en una estructura de árbol.

Por ejemplo:

tree /tmp

5.3 treeOpciones de comando

treeEl comando también admite algunas opciones, que pueden ajustar los resultados de salida según las necesidades. Aquí hay algunas opciones de uso común:

  • -d: solo muestra directorios, no archivos.
  • -L level: limite el número de niveles mostrados, por ejemplo, -L 2solo muestre una estructura de directorio de dos niveles.
  • -I pattern: especifique el directorio o el patrón de archivo que desea excluir, por ejemplo, -I "*.log"excluya todos .loglos archivos que terminen en .
  • -f: muestra rutas completas, no solo rutas relativas.

Puede ver más opciones y ejemplos consultando treela página de manual del comando (usando el comando).man tree

6. Usa lsel comando

Además de las herramientas de búsqueda especializadas, lslos comandos también pueden ayudarnos a encontrar directorios. lsEl comando se usa para enumerar el contenido del directorio, y el directorio se puede filtrar combinando diferentes opciones y comodines.

6.1 Buscar directorio

Para buscar directorios, puede usar la opción lsdel comando -d, combinada con comodines */:

ls -d /path/to/directory/*/

Este comando listará /path/to/directory/todos los subdirectorios bajo el directorio.

6.2 Buscar un directorio con un nombre específico

Si solo desea buscar directorios cuyo nombre de directorio coincida exactamente con un nombre específico, puede usar el nombre del directorio directamente como argumento:

ls -d /path/to/directory/directory_name

Reemplace directory_namecon el nombre del directorio de destino.

6.3 Buscar directorios que contengan una cadena específica

También puede usar lsel *comodín del comando para buscar directorios cuyos nombres de directorio contengan una determinada cadena:

ls -d /path/to/directory/*keyword*

Reemplace keywordcon la cadena que desea encontrar.

6.4 Más opciones

lsEl comando también admite algunas otras opciones, como mostrar detalles de directorios, ordenar por hora de modificación, etc. Puede ver más opciones y ejemplos consultando lsla página de manual del comando (usando el comando).man ls

7. Conclusión

Encontrar directorios en Linux es una tarea común e importante. findLos comandos locate, treey lsson cuatro herramientas de uso común que pueden ayudarnos a encontrar rápidamente el directorio de destino en el sistema de archivos. Al dominar el uso de estos comandos, puede administrar directorios y archivos de manera más eficiente y realizar varias operaciones más fácilmente en el sistema Linux.

Supongo que te gusta

Origin blog.csdn.net/weixin_43025343/article/details/131914847
Recomendado
Clasificación