A veces cuando estamos trabajando con la consola de linux o incluso si estamos conectados por ssh a otra máquina, puede que queramos averiguar el tamaño de una carpeta de forma recursiva sin necesitar otro dato que simplemente el número de megas que ocupa, o incluso saber cuantos archivos contiene.
Estas son funcionalidades básicas que trae el sistema operativo de serie, aunque una de ellas está clara y es sencilla de usar, y la otra necesita tener un poco de picardía y saber como funcionan otros comandos en linux para poder aprovechar la poténcia que tiene la combinación de comandos.
En un primer momento imaginemos que queremos saber el tamaño total de una carpeta, solo el tamaño en megas y además queremos saberlo de forma recursiva, es decir que nos diga el tamaño de todos los archivos que hay dentro de esa carpeta y subsiguientes como si de botón derecho propiedades se tratara.
Ver tamaño total de una carpeta de forma recursiva en linux
Sertá tan simple como irnos a la carpeta que queremos ver el tamaño y ejecutar el siguiente comando
du -sh
que nos devolverá algo así
175M .
Si somos un poco más perezosos también podemos incluir la carpeta dentro de la misma línea para no tener que navegar a ella de la siguiente forma
du -sh /ruta/a/carpeta
Contar número de archivos dentro de una carpeta de forma recursiva en linux
Este otro comando está un poco más rebuscado, ya que implica la utilización de find para encontrar todos los archivos, y luego los vamos a contar.
Tenemos varias formas de hacerlo, pero todas nos van a devolver un solo número que será el número total de coincidencias de archivos. Vamos a ver los tipos más útiles a la hora de hacerlo
Contar los archivos pero solo en carpetas dos niveles por debajo (si hay más de dos niveles de carpetas se omiten)
find . -maxdepth 2 -type f | wc -l
Nos devolverá un solo número como por ejemplo 2590. Fijate que he puesto -type f que lo que hace es contar solo archivos (ignoramos las carpetas)
Contar archivos de forma recursiva ilimitada
find . -type f | wc -l
Contar archivos y carpetas de forma recursiva
find . | wc -l
Contar archivos con una extensión determinada
find . -type f -name "*.php" | wc -l
Con este comando estaríamos contando todos los archivos .php, fíjate que también puedes poner un nombre de archivo o una parte como por ejemplo «clase*» o «*log*» para buscar archivos con estas cadenas y contarlos.