Contar los archivos dentro de una carpeta o de forma recursiva – Comando wc

¡Hola a todos!

En el mundo GNU/Linux, hay muchos comandos que tal vez no son muy usados cotidianamente (por lo menos para mí…), entre los cuales hay uno llamado wc, el cual nos sirve para contar líneas, palabras y caracteres que contiene un archivo.

La sintaxis es muy sencilla… Es así:

wc -opciones archivo

Donde las opciones típicamente más usadas son:

  • -m
    • Nos muestra el total de caracteres contenidos en el archivo. (Se cuentan los saltos de línea y los espacios de barra como caracteres).
  • -c
    • Nos muestra el total de bytes contenidos en el archivo (Parecido a -m | 1 byte = caracter)
  • -w
    • Nos muestra el total de palabras contenidos en el archivo.
  • -l
    • Nos muestra el total de líneas contenidas en el archivo.

Si lo ejecutamos sin ningún parámetro, nos mostrará un resultado con las opciones por defectos cwl (bytes, palabras y líneas) en columnas. A continuación un ejemplo:

La primera columna (59) quiere decir el total de líneas, la segunda columna el total de palabras (95) y la tercera columna el total de bytes (3265).

Ok, sabiendo esto, vamos a lo que atañe a ésta entrada… Para contar el total de archivos que están dentro de una carpeta, se debe de utilizar una tubería y un par de comandos. A continuación la línea de comando:

ls -A /ruta/a/carpeta | wc -l

Lo único es que, con éste línea, las carpetas son tomadas en cuenta en el conteo… al final, una carpeta sigue siendo un archivo en el mundo de GNU/Linux, pero bueno…

Si queremos contar únicamente los archivos, ya tendríamos que usar el comando find así:

find /ruta/a/carpeta -maxdepth 1 -type f | wc -l

Si queremos contar todos los archivos en una carpeta y subcarpetas dentro de ella (de forma recursiva):

find /ruta/a/carpeta -type f | wc -l

Y pues.. con find podemos hacer una gran cantidad de filtros… por ejemplo, si queremos contar solo carpetas (d), enlaces (e), etc.

Bueno, espero que sea de utilidad. ¡Saludos!

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*