GNU/Linux >> Tutoriales Linux >  >> Linux

Contar el número de archivos en un directorio en Linux

Supongo que conoce el comando wc para contar el número de líneas. Podemos usar el mismo comando wc con el comando ls para contar la cantidad de archivos en un directorio.

Esta tarea parece simple pero pronto podría volverse un poco compleja según su necesidad y definición de archivos de conteo. Antes de que lo confunda más, veamos varios casos de uso para contar la cantidad de archivos en Linux.

Cuenta el número de archivos en el directorio en Linux

Permítanme mostrarles primero el contenido del directorio de prueba que voy a usar en este tutorial:

[email protected]:~/tutorials$ ls -la
total 64
drwxr-xr-x 4 abhishek abhishek 4096 Apr 29 17:53 .
drwxr-xr-x 55 abhishek abhishek 4096 Apr 29 15:50 ..
-rwxr–r– 1 abhishek abhishek 456 Mar 6 16:21 agatha.txt
-rw-r–r– 1 abhishek abhishek 0 Apr 16 19:53 .a.t
-rwxr–r– 1 abhishek abhishek 140 Mar 22 16:41 bash_script.sh
-rw-rw-r– 1 abhishek abhishek 95 Feb 11 13:12 cpluplus.cpp
-rw-r–r– 1 abhishek abhishek 1778 Apr 29 16:16 my_zip_folder.zip
drwxr-xr-x 4 abhishek abhishek 4096 Apr 19 19:07 newdir
-rw-r–r– 1 abhishek abhishek 163 Apr 13 15:07 prog.py
-rw-r–r– 1 abhishek abhishek 19183 Mar 18 18:46 services
-rw-r–r– 1 abhishek abhishek 356 Dec 11 21:35 sherlock.txt
-rwxrw-r– 1 abhishek abhishek 72 Jan 21 15:44 sleep.sh
drwxr-xr-x 3 abhishek abhishek 4096 Jan 4 20:10 target

Puede ver que tiene 9 archivos (incluido un archivo oculto) y 2 subdirectorios en ese directorio. Pero no tienes que hacerlo manualmente. Contemos la cantidad de archivos usando los comandos de Linux.

Cuenta el número de archivos y directorios (sin archivos ocultos)

Simplemente puede ejecutar la combinación de los comandos ls y wc y mostrará la cantidad de archivos:

ls | wc -l

Esta es la salida:

[email protected]:~/tutorials$ ls | wc -l
10

Hay un problema con este comando. Cuenta todos los archivos y directorios en los directorios actuales. Pero no ve los archivos ocultos (los archivos cuyo nombre comienza con un punto).

Esta es la razón por la que el comando anterior me mostró un recuento de 10 archivos en lugar de 11 (9 archivos y 2 directorios).

Cuenta el número de archivos y directorios, incluidos archivos ocultos

Probablemente ya sepa que la opción -a del comando ls muestra los archivos ocultos. Pero si usa el comando ls -a, también muestra el archivo . (directorio actual) y .. (directorio principal). Es por eso que necesita usar la opción -A que muestra los archivos ocultos excluyendo . y .. directorios.

ls -A | wc -l

Esto le dará el recuento correcto de archivos y directorios en el directorio actual. Eche un vistazo a la salida que muestra un recuento de 11 (9 archivos y 2 directorios):

[email protected]:~/tutorials$ ls -A | wc -l
11

También puede usar este comando para lograr el mismo resultado:

ls -1A | wc -l

Tenga en cuenta que la opción utilizada es 1 (uno) no l (L). El uso de la opción l (L) muestra una línea adicional al principio de la salida (ver 'total 64' en la salida del directorio al principio del artículo). El uso de 1 (uno) enumera un contenido por línea, excluyendo la línea adicional. Esto da un resultado más preciso.

Recuento del número de archivos y directorios, incluidos los subdirectorios

Lo que ha visto hasta ahora es el recuento de archivos y directorios solo en el directorio actual. No tiene en cuenta los archivos de los subdirectorios.

Si desea contar la cantidad de archivos y directorios en todos los subdirectorios, puede usar el comando de árbol.

tree -a

Este comando muestra la estructura del directorio y luego muestra el resumen en la parte inferior de la salida.

[email protected]:~/tutorials$ tree -a
.
├── agatha.txt
├── .a.t
├── bash_script.sh
├── cpluplus.cpp
├── my_zip_folder.zip
├── newdir
│   ├── new_dir
│   │   ├── c.xyz
│   │   ├── myzip1.zip
│   │   └── myzip2.zip
│   └── test_dir
│   ├── c.xyz
│   ├── myzip1.zip
│   └── myzip2.zip
├── prog.py
├── services
├── sherlock.txt
├── sleep.sh
└── target
├── agatha.txt
├── file1.txt
└── past
├── file1.txt
├── file2.txt
└── source1
└── source2
└── file1.txt
7 directories, 19 files

Como puede ver en el resultado, muestra que hay 7 directorios y 20 archivos en total. Lo bueno de este resultado es que no cuenta los directorios en el conteo de archivos.

Cuenta solo los archivos, no los directorios

Hasta ahora, todas las soluciones que hemos visto para contar el número de archivos, también tienen en cuenta los directorios. Los directorios son esencialmente archivos, pero ¿qué sucede si desea contar solo la cantidad de archivos, no los directorios? Puedes usar el maravilloso comando de búsqueda.

Puede ejecutar este comando:

find . -type f | wc -l

El comando anterior buscó todos los archivos (tipo f) en el directorio actual y sus subdirectorios.

[email protected]:~/tutorials$ find . -type f | wc -l
20

Cuenta solo los archivos, no directorios y solo en el directorio actual, no subdirectorios

¡Eso es genial! Pero, ¿qué sucede si desea contar la cantidad de archivos en el directorio actual solo excluyendo los archivos en los subdirectorios? Puede usar el mismo comando que el anterior pero con una ligera diferencia.

Todo lo que tiene que hacer es agregar la "profundidad" de su hallazgo. Si lo establece en 1, no ingresará a los subdirectorios.

find . -maxdepth 1 -type f | wc -l

Aquí está el resultado ahora:

[email protected]:~/tutorials$ find . -maxdepth 1 -type f | wc -l
9

Al final…

En Linux, puede tener varias formas de lograr el mismo objetivo. Estoy bastante seguro de que puede haber varios otros métodos para contar la cantidad de archivos en Linux. Si usa algún otro comando, ¿por qué no lo comparte con nosotros?

Espero que este tutorial de Linux te haya ayudado a aprender algunas cosas. Manténgase en contacto para obtener más consejos sobre Linux.


Linux
  1. Cómo contar la cantidad de archivos y subdirectorios dentro de un directorio dado

  2. ¿Cuál es la mejor manera de contar el número de archivos en un directorio?

  3. ¿Cómo contar la cantidad de archivos en un directorio y eliminar los más antiguos si el número supera los 5?

  4. Conteo recursivo de archivos en un directorio de Linux

  5. Forma rápida de contar archivos recursivamente en Linux

Cómo copiar una gran cantidad de archivos en Linux

Cómo listar archivos recursivamente en Linux

Cómo contar la cantidad de archivos y subdirectorios dentro de un directorio

Cómo contar archivos en el directorio en Linux

Cómo contar el número de archivos en un directorio en Linux

Linux:busque el número de archivos en un directorio y subdirectorios