Cómo contar archivos en un directorio y sus subdirectorios en Linux

Mientras navega por su sistema de archivos de Linux, puede encontrarse con directorios que contienen muchos archivos. A veces necesita encontrar la cantidad de archivos en esos directorios y sus subdirectorios en un sistema Linux. Como el conteo manual no es una solución práctica en este caso. Por lo tanto, en esta publicación, veremos otros métodos rápidos para contar archivos en un directorio y sus subdirectorios en un sistema operativo Linux.

Método #1 usando el comando de búsqueda

El comando de búsqueda combinado con el comando wc puede ayudarlo a contar los archivos de forma recursiva. El comando find encuentra y enumera todos los archivos en un directorio y sus subdirectorios y luego el comando wc cuenta la cantidad de archivos. De esta forma, puede obtener el recuento de archivos en un directorio de forma recursiva.

Aquí está la sintaxis para contar solo los archivos en un directorio recursivamente:

                      $ find <path> -type f | wc -l
                    

Por ejemplo, para contar todos los archivos en el directorio actual, el comando sería:

                      $ find -type f | wc -l
                    

De manera similar, para contar solo los archivos en el directorio ‘Documentos’, el comando sería:

                      $ find ~/Documents -type f | wc -l
                    

Para contar solo los subdirectorios dentro de un directorio, use –type d de la siguiente manera:

                      $ find <path> -type d | wc -l
                    

Para incluir tanto los archivos como los subdirectorios en el conteo, use el siguiente comando:

                      $ find <path> | wc -l
                    

El comando de búsqueda también le permite limitar su búsqueda a niveles de directorio específicos. A continuación se muestra el árbol de directorios de nuestro directorio Documentos.

Ahora, por ejemplo, si desea contar los archivos en un directorio específico hasta 3 niveles (hasta el directorio ‘mydocs’), use la opción de línea de comando ‘-max depth 3’:

                      $ find <path> -maxdepth 3 -type f| wc -l
                    

Este comando contará los archivos hasta 3 niveles, siendo el nivel superior el directorio ‘Documentos’.

Del mismo modo, también puede iniciar el conteo desde un nivel específico. Por ejemplo, si desea excluir los primeros 2 directorios del conteo de archivos, puede usar la opción de línea de comando ‘-min depth 2’. El ‘-min depth 2’ le indicará al comando de búsqueda que baje 2 niveles antes de comenzar la búsqueda.

                      $ find <path> -mindepth 2 -type f | wc -l
                    

Método #2 usando el comando ls

El comando ls en Linux se usa para listar archivos y directorios. Usando ls con el comando wc, podemos obtener el recuento de archivos en un directorio específico. Sin embargo, tenga en cuenta que este recuento no incluye los archivos dentro de los subdirectorios.

Para encontrar la cantidad de archivos en un directorio, pase su salida al comando wc de la siguiente manera:

                      $ ls <path> | wc -l
                    

Si no especifica la ruta del directorio, contará los archivos en el directorio de trabajo actual,

Aquí está el resultado del comando ls en nuestro directorio ‘Documentos’.

Ahora, para contar la cantidad de archivos en el directorio ‘Documentos’, el comando sería:

                      $ ls -a <path> | wc -l
                    

El comando ls enumerará los archivos en el directorio especificado, mientras que el comando wc contará la cantidad de archivos. Entonces, en la salida, obtendrá la cantidad de archivos, incluidos los subdirectorios en el directorio especificado. Aquí tenga en cuenta que este recuento no será recursivo ya que no contará los archivos en los subdirectorios.

Para excluir subdirectorios y contar solo los archivos en un directorio, use el siguiente comando:

                      $ ls -p <path> | grep -v / | wc -l
                    

Para contar también los archivos ocultos, use el siguiente comando:

                      $ ls -Ap <path> | grep -v / | grep "^." | wc -l
                    

Método #3 Usando el comando de árbol

El comando de árbol también le indica la cantidad de archivos y subdirectorios en un directorio. Para contar los archivos y directorios en un directorio específico, use el siguiente comando:

                      $ tree <path> | tail -1
                    

En la salida, encontrará el recuento de archivos y directorios en el directorio especificado.

Para incluir también los archivos ocultos, use el indicador -a con el comando de árbol de la siguiente manera:

                      $ tree -a <path> | tail -1
                    

¡Eso es todo! En esta publicación, hemos explicado cómo contar archivos en un directorio y sus subdirectorios en el sistema operativo Linux. Hemos discutido tres métodos diferentes para contar archivos en un directorio que incluyen los comandos ls, find y tree.

Related Posts