¿Alguna vez te has estrujado la cabeza para poder contar el número de archivos dentro de un directorio y subdirectorios en Linux?
En este breve artículo, veremos cómo puede hacerlo de una manera simple pero precisa.
1) Usando el comando wc
WC command, abreviatura de Word Count, es una herramienta de línea de comandos en sistemas Unix/Linux que se utiliza para imprimir nuevas líneas, contar líneas de números y caracteres en un archivo. El comando también puede combinarse con otras operaciones de tuberías para funciones generales de conteo.
Para contar el número de archivos en un directorio, utiliza la siguiente sintaxis
# ls -1 | wc -l
Desglosemos la sintaxis y veamos qué hace qué:
ls
: Lista los archivos
-1
: Este es un UNO. Imprime una entrada por línea. Para imprimir archivos ocultos, cámbielo a -1a
|
: Tuberías de salida a…
wc
: Wordcount
-l
: Cuenta las líneas
Para contar el número de archivos fuera del directorio, puedes especificar el nombre del directorio como se muestra a continuación:
# ls directory_name | wc -l
Para demostrar cómo funcionan estos comandos, vamos a crear un nuevo directorio test_folder, y navegar en él.
# mkdir test_folder && cd test_folder
A continuación, vamos a crear algunos archivos de texto con fines de demostración:
# touch file1.txt file2.txt file3.txt file4.txt file5.txt
Confirmemos la existencia de los archivos listándolos con el comando ls:
# ls -l
Salida
Genial, ahora vamos a contar los archivos:
# ls -1 | wc -l
Salida
Del mismo modo, puedes salir del directorio utilizando comando cd.
# cd ..
Y ejecuta:
# ls test_folder | wc -l
Salida
2) Usando el comando tree
tree
es una herramienta de línea de comandos de Unix/Linux que imprime recursivamente directorios en un formato de árbol. Muestra cada directorio junto con cualquier subdirectorio dentro de él. Además, también puede mostrar e imprimir el número de archivos en un directorio.
Navega hasta nuestra carpeta de ejemplo test_folder
cd test_folder
Y ahora ejecutamos el comando tree:
tree
Salida
Como puedes ver, los nombres de los archivos junto con el recuento que aparece en la parte inferior se enumeran. Claramente, a través de la observación, el conteo coincide exactamente con el número de archivos creados anteriormente.
4) Comando Rsync
Podemos usar el comando rsync para encontrar el número de archivos de archivos, directorios, enlaces simbólicos.
# rsync --stats --dry-run -ax /etc /test
--dry-run
no se utiliza realmente para transferir los archivos. /test debe ser cualquier carpeta vacía o no existente.
# rsync --stats --dry-run -ax /etc /test Number of files: 1,406 (reg: 622, dir: 187, link: 597) Number of created files: 1,406 (reg: 622, dir: 187, link: 597) Number of deleted files: 0 Number of regular files transferred: 622 Total file size: 2,341,951 bytes Total transferred file size: 2,320,656 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 0 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 64,184 Total bytes received: 4,429 sent 64,184 bytes received 4,429 bytes 137,226.00 bytes/sec total size is 2,341,951 speedup is 34.13 (DRY RUN)
3) Contar archivos recursivamente a través de directorios y subdirectorios
Para contar archivos recursivamente a través de directorios y subdirectorios usamos el siguiente comando:
# find DIR_NAME -type f | wc -l
Donde:
DIR_NAME es el nombre del directorio
– type f especifica solo archivos
wc (Word Count) cuenta nuevas líneas, palabras y bytes en su entrada
-l Cuenta nuevas líneas
Si estás contando archivos en el directorio actual, reemplaza DIR_NAME por un punto como se muestra a continuación:
# find . -type f | wc -l
Para incluir otras subcarpetas y archivos dentro de subcarpetas, omite la opción - type f.
find . | wc -l
Espero que este artículo haya sido útil y que ahora puedas contar cómodamente el número de archivos dentro de los directorios y subdirectorios. También, prueba la herramienta ncdu que es una herramienta GUI que también ayuda a encontrar el número de archivos.