
saber ser eficiente Conteo de archivos y directorios en Linux Esta es una habilidad valiosa para los administradores de sistemas y cualquiera que trabaje con grandes cantidades de material.En esta guía, compartiré cómo usar herramientas simples de línea de comandos como find
, wc
y ls
rápido Encuentre la cantidad exacta de archivos y carpetas en Linux y Unix Sistema operativo.
¡Empecemos!
Cuente el número de archivos en un directorio usando find
Orden
Para contar todos los archivos en una ruta determinada (incluidos todos sus subdirectorios), puede utilizar find
combinación de comandos wc -l
en su terminal Linux. Puedes hacerlo:
1. Abre tu terminal.
2. Utilice el siguiente comando para reemplazar /path/to/your/directory
con la ruta real al directorio:
$ find /path/to/your/directory -type f | wc -l
Analicemos el comando anterior y veamos qué hace cada parte del comando:
find /path/to/your/directory
Comience a buscar dentro del directorio especificado.-type f
Decirfind
Busque solo archivos (no directorios).- este
|
(tubería) pasó la salidafind
comando al siguiente comando. wc -l
Cuenta el número de filas en la entrada que recibe, gracias al usofind
correspondiente al número de archivos.
Esto generará el número total de archivos en el directorio especificado y todos sus subdirectorios.
ejemplo:
Para contar la cantidad de archivos en el directorio de descarga, el comando es:
$ find ~/Downloads -type f | wc -l 5968
Como puedes ver, hay 5968 archivos en el directorio de descarga.
Usar directorio de recuento find
Orden
En el ejemplo anterior, contamos la cantidad de archivos en una ubicación determinada. ¿Qué pasa con la tabla de contenidos? ¿Podemos usar el comando buscar para buscar subdirectorios en un directorio específico?
Sí, podemos usar la línea de comando para encontrar la cantidad de subdirectorios dentro de un directorio determinado en Linux.Usarás find
comando nuevamente, pero esta vez buscará el directorio (-type d
) en lugar de un archivo.
$ find /path/to/the/directory -type d | wc -l
Solo reemplaza /path/to/the/directory
con el camino real. Aquí hay una descripción detallada del comando:
find /path/to/the/directory
Comience a buscar dentro del directorio especificado.-type d
Decirfind
Busque directorios únicamente.- este
|
(tubería) pasó la salidafind
comando al siguiente comando. wc -l
Cuenta el número de líneas en la entrada que recibe, que corresponde al número de directorios encontrados a través defind
.
Este comando cuenta todos los directorios, incluido el directorio raíz buscado.
ejemplo:
$ find ~/Downloads -type d | wc -l 563

Como puede ver, hay 563 subdirectorios bajo el directorio ~/Downloads
directorio, incluido él mismo.
Si desea excluir el directorio raíz del recuento, simplemente reste 1 del resultado.
Cuente el número de archivos y directorios. find
Uso de comandos maxdepth
y mindepth
Opciones
Cuando se usa para contar archivos y directorios find
Instrucciones en Linux, uso. maxdepth
y mindepth
Las opciones efectivas pueden ayudarlo a identificar su búsqueda y evitar contar elementos innecesarios.
A continuación se explica cómo utilizar estas opciones para contar.
Cuente la cantidad de archivos dentro de un rango de profundidad específico
Para contar archivos dentro de un rango de profundidad de directorio específico, también puede especificar mindepth
y maxdepth
. Esto es útil cuando desea excluir archivos de nivel superior o profundizar en un nivel de subdirectorio específico.
ejemplo:Solo cuente archivos en el subdirectorio de segundo nivel:
$ find /path/to/directory -mindepth 2 -maxdepth 2 -type f | wc -l
Este comando contará archivos exactamente a dos profundidades de directorio desde el punto de partida.
Calcular directorios a una profundidad específica.
Asimismo, para contar directorios a una profundidad específica, puede ajustar mindepth
y maxdepth
opciones correspondientes.
ejemplo: Calcula directorios con exactamente tres niveles de profundidad:
$ find /path/to/directory -mindepth 3 -maxdepth 3 -type d | wc -l
Excluir directorios de nivel superior del recuento
Si está contando elementos pero desea excluir el directorio de nivel superior o cualquier elemento del directorio de nivel superior, puede utilizar el siguiente comando de ejemplo.
ejemplo: Cuente todos los archivos excepto los directorios de nivel superior:
$ find /path/to/directory -mindepth 1 -type f | wc -l
ejemplo: El cálculo no incluye los subdirectorios de nivel superior:
$ find /path/to/directory -mindepth 1 -type d | wc -l
Cuente todos los archivos o directorios dentro de una cierta profundidad
Si desea incluir todo hasta cierta profundidad, puede usar maxdepth
No especificado mindepth
.
Ejemplo: cuente todos los archivos en el subdirectorio de segundo nivel:
$ find /path/to/directory -maxdepth 2 -type f | wc -l
Consejos para un uso eficaz
- aclara tus objetivos: Comprenda si está interesado en archivos, directorios o ambos, y ajuste
-type
opciones (f
Para archivos,d
para directorios) en consecuencia. - Considere el rendimiento: La búsqueda en estructuras de directorios muy profundas puede llevar mucho tiempo.Si sólo está interesado en un rango de profundidad específico, configure
maxdepth
ymindepth
Apropiadamente puede acelerar su búsqueda. - Valide sus suposiciones profundas: Antes de realizar una operación de conteo grande, pruebe su comando con una pequeña porción del directorio de destino para asegurarse de que está contando a la profundidad correcta.
Puede contar archivos y carpetas en Linux con mayor precisión y rapidez utilizando Ajustar profundidad de búsquedamindepth
» y»maxdepth
«Según tus necesidades.
Cuente el número de directorios y sus subdirectorios usando el siguiente comando ls
Orden
La combinación de ls, grep y wc es otra forma de contar el número de directorios dentro de un directorio específico (incluidos todos sus subdirectorios).
Navegue hasta el directorio donde desea contar la cantidad de subdirectorios:
$ cd MyFiles/
y ejecuta el siguiente comando:
$ ls -lR | grep ^d | wc -l 488
Como puede ver en el resultado anterior, el número total de subdirectorios ~/MyFiles
Sí Capítulo 488.
Aquí hay una breve explicación de cómo funciona el comando:
- ls -lR: este comando enumera de forma recursiva todos los archivos y directorios en el directorio actual y sus subdirectorios, mostrando información detallada sobre cada archivo y directorio.
grep ^d
: Este comando filtra la salida.ls -lR
directiva para seleccionar solo líneas que comiencen con «d», que representa un directorio.wc -l
: Este comando cuenta el número de líneas en la salida generada porgrep ^d
Orden.
Entonces, en resumen, este comando enumera todos los directorios y subdirectorios dentro del directorio actual y sus subdirectorios, luego cuenta el número de directorios y genera el recuento. Básicamente, le indica cuántos directorios existen dentro del directorio actual y sus subdirectorios.
Este es un método conveniente, especialmente cuando ya está trabajando en un directorio específico y desea calcular rápidamente el recuento de directorios.
Por qué find
y ls
¿Comando que muestra diferentes recuentos al contar directorios?
Orden ls -lR | grep ^d | wc -l
y find /path/to/directory -type d | wc -l
Ambos cuentan directorios, pero lo hacen de diferentes maneras, lo que puede llevar a resultados diferentes.
Estas son las razones por las que los recuentos son diferentes:
1. Directorio oculto:
find
Orden: Por defecto,find
Incluir directorios ocultos (comenzando con.
) en su búsqueda y conteo.ls -lR
Orden: Esta combinación, sin opciones adicionales, no enumerará directorios ocultos a menos que se le indique explícitamente que lo haga (usando-a
Opciones yls
).
2. Recuento del directorio raíz:
find
Orden: recuento obtenidofind /path/to/directory -type d | wc -l
Incluye el directorio raíz especificado en su total.ls -lR | grep ^d | wc -l
Orden: este método normalmente solo cuenta los subdirectorios, no el directorio raíz desde el que se ejecuta el comando, dependiendo de cómo se interprete el resultado.grep
.
en conclusión
Ya sea que esté limpiando un disco duro externo o simplemente tenga curiosidad sobre el contenido de una carpeta, poder contar rápidamente la cantidad de archivos y directorios dentro de una ubicación específica es una habilidad esencial.
Usando el comando apropiado, p.e. find
, ls
y wc
puede obtener efectivamente la cantidad exacta de archivos y directorios dentro de una ubicación específica o incluso de todo el sistema Linux.
Lectura relacionada: