Tuesday, 25 August 2020

Counting Files and Directories in Linux

Directories in Linux, LPI Tutorials and Materials, LPI Exam, LPI Exam Prep, LPI Certification

Although at first counting files and directories in Linux may not seem the most exciting topic you will be surprised just how much you can learn from these tasks. They are also well suited to those starting out in Linux with one or two elements that may be new even to seasoned Linux users.

Firstly, if we want to be counting files and directories in Linux then ls may be a great option Used in conjunction with wc we can count the number of items returned. The command ls is used to list directory content and wc is used for word count, used with -l it can count lines.

$ ls | wc -l

Whilst this is good we will not show hidden files or directories. Hidden files start with a dot. To list these we can use the option -a or -A with ls. To show all files we use -a and almost all files with -A. Yes almost all, we exclude the . and .. directories which are system links.

[tux@packstack ~]$ ls
dir1  dir2  dir3  dir4

[tux@packstack ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  dir1  dir2  dir3  dir4

[tux@packstack ~]$ ls -A
.bash_logout  .bash_profile  .bashrc  dir1  dir2  dir3  dir4

[tux@packstack ~]$

If we want to count the output we are better not count the . and .. directory.

[tux@packstack ~]$ ls -A | wc -l
7

[tux@packstack ~]$

From the output we can see that we have a total of 7 items in the current directory.

If we want to count directories and files separetely then we can use the GNU command find. To list files we can use the option -type f. Of course we could count the output as before.

[tux@packstack ~]$ find . -type f
./.bash_logout
./.bash_profile
./.bashrc

Directories in Linux, LPI Tutorials and Materials, LPI Exam, LPI Exam Prep, LPI Certification
Listing directories is similar but we will see that we will include the current directory which we may not want.

[tux@packstack ~]$ find . -type d
.
./dir1
./dir2
./dir3
./dir4

To exclude the current directory from the count we can use the option -mindepth 1 to ensure that we start with the directories content and not the directory.[tux@packstack ~]$

find . -mindepth 1 -type d
./dir1
./dir2
./dir3
./dir4

So we can see that counting files and directories in Linux is not difficult but it can be even easier. Well at least counting directories. The hard link count for a directory can be used to show how many subdirectories there are in the directory. Each subdirectory has a link back to the parent. A directory start with a hard link count of 2 so just remove 2 from the current hard link count to see how many subdirectories.

[tux@packstack ~]$ ls -ld /etc
drwxr-xr-x. 112 root root 8192 Jun 8 15:03 /etc

The etc directory has 110 subdirectories on my system, 112 – 2 = 110

Related Posts

0 comments:

Post a Comment