A veces queremos encontrar la cantidad de archivos en un directorio en Linux. Por ejemplo, encontrar cuántas imágenes están presentes en el directorio de cargas de JournalDev WordPress.
Hay varias formas de hacerlo, veamos algunos de los escenarios comunes y el mejor comando para encontrar la cantidad de archivos en un directorio.
1. Encuentra el Número de Archivos en un Directorio
Podemos usar el comando ls junto con el comando wc para contar la cantidad de archivos en un directorio. Contemos el número de archivos en el directorio raíz de mi tema.
# ls 404.php archive.php functions.php inc layouts phpcs.xml.dist screenshot.png single.php webpack LICENSE comments.php header.php index.php package-lock.json postcss.config.js search.php src woocommerce.css Plugins dist home.php js package.json readme.txt sidebar-left.php style.css README.md footer.php images languages page.php rtl.css sidebar.php template-parts # ls -1 | wc -l 34
Si observa la imagen, los elementos de color azul son directorios. También se incluyen como archivo en la salida.
¿Qué pasa si queremos contar solo archivos y no directorios?
# ls -p | grep -v / | wc -l 24 #
- El comando "ls -p" imprime los nombres de los directorios con "/" al final.
- El comando "grep -v /" filtra la salida e imprime solo el nombre que no contiene "/", por lo tanto, omite todos los directorios.
- Finalmente, "wc -l" cuenta las líneas en la salida y las imprime.
Del mismo modo, si desea encontrar la cantidad de directorios solo dentro de un directorio, use el siguiente comando.
# ls -p | grep / | wc -l 10 #
Nota:Los comandos anteriores no buscan los archivos ocultos, si desea que el conteo también incluya archivos ocultos, use la opción "-a" con el comando ls.
# ls -a1 | wc -l 41 #
Este comando contará “.” y ".." también, por lo que deberá tenerlo en cuenta en su script de shell si es necesario.
2. Encuentra el número de archivos en un directorio y subdirectorios de forma recursiva
Los ejemplos anteriores son buenos para contar archivos y directorios en un directorio. Pero, si desea contar la cantidad de archivos, incluidos los subdirectorios, deberá usar el comando de búsqueda.
# find . -type f ./.test_file ./functions.php ./logger/class-logger-writter.php ./logger/class-logger-export.php ./logger/assets/js/base.js ./logger/assets/css/base.css ./logger/assets/css/base.less ./logger/assets/css/base.css.map ./logger/class-logger-reader.php ./class-protector.php ./class-anti-spam-plugin.php # find . -type f | wc -l 11 #
- La opción "-type f" del comando de búsqueda se usa para buscar archivos normales.
- Este comando ignorará todos los directorios, “.” y archivos “..”. Pero incluirá archivos ocultos en la salida.
- El comando "wc -l" contará el número total de líneas y lo imprimirá, dándonos así el recuento de archivos.
Referencias:
- página man del comando wc
- buscar página del comando man