While navigating your Linux file system, you may come across directories containing a lot of files. Sometimes you need to find the number of files in those directories and their subdirectories in a Linux system. As manual counting is not a practical solution in this case. Therefore in this post, we will look at some other quick methods to count files in a directory and its subdirectories in a Linux OS.
The find command combined with the wc command can help you count the files recursively. The find command finds and lists all the files in a directory and its subdirectories and then the wc command counts the number of files. This way you can get the count of files in a directory recursively.
Here is the syntax to count only the files in a directory recursively:
$ find-type f | wc -l
For instance, to count all the files in the current directory, the command would be:
$ find -type f | wc -l
Similarly, to count only the files in the ‘Documents’ directory, the command would be:
$ find ~/Documents -type f | wc -l
To count only the subdirectories within a directory, use –type d as follows:
$ find-type d | wc -l
To include both the files and the subdirectories in the count, use the command below:
$ find| wc -l
The find command also enables you to confine your search to specific directory levels. Below is the directory tree of our Documents directory.
Now, for instance, if you want to count the files in a specific directory up to 3 levels (up to ‘mydocs’ directory), use the command line option ‘-maxdepth 3’:
$ find-maxdepth 3 -type f| wc -l
This command will count the files up to 3 levels with the top level being the ‘Documents’ directory.
Similarly, you can also start the count from a specific level. For instance, if you want to exclude the first 2 directories from the file count, you can use the command line option ‘-mindepth 2’. The ‘-mindepth 2’ will tell the find command to go 2 levels down before starting the search.
$ find-mindepth 2 -type f | wc -l
The ls command in Linux is used for listing files and directories. Using the ls with the wc command, we can get the count of files in a specific directory. However, note that this count does not include the files inside the subdirectories.
To find the number of files in a directory, pass its output to the wc command as follows:
$ ls| wc -l
If you do not specify the directory path, it will count files in the current working directory,
Here is the output of the ls command in our ‘Documents’ directory.
Now to count the number of files in the ‘Documents’ directory, the command would be:
$ ls -a| wc -l
The ls command will list the files in the specified directory while the wc command will count the number of files. So in the output, you will get the number of files including the subdirectories under the specified directory. Here note that this count will not be recursive as it will not count the files under the subdirectories.
To exclude subdirectories and count only the files in a directory, use the command below:
$ ls -p| grep -v / | wc -l
To count the hidden files too, use the command below:
$ ls -Ap| grep -v / | grep "^." | wc -l
The tree command also tells you the count of files and subdirectories under a directory. To count the files and directories under a specific directory, use the command below:
$ tree| tail -1
In the output, you will find the count of files and directories under the specified directory.
To include the hidden files too, use the -a flag with the tree command as follows:
$ tree -a| tail -1
That’s all! In this post, we have gone through how to count files in a directory and its subdirectories on Linux OS. We have discussed three different methods to count files in a directory which include the ls, find and tree commands.
Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications including CCNA RS, SCP, and ACE. As an IT engineer and technical author, he writes for various websites.
The Linux terminal is a powerful tool allowing users to control their system precisely and…
Welcome to the Ubuntu Weekly Newsletter, Issue 876 for the week of January 19 –…
Canonical Ceph with IntelⓇ Quick Assist Technology (QAT) Photo by v2osk on Unsplash When storing…
Introduction Using Kafka for Remote Procedure Calls (RPC) might raise eyebrows among seasoned developers. At…
This article provides a guide for how to install PalWorld on Ubuntu VPS server. How…
Using APT to manage software on Ubuntu (or similar Linux systems) is generally simple. It…