The easiest way to count number of files and subdirectories in a directory using a tree command, which is best known for displaying files and directories in tree-like form.
Although you can always enable quotas to restrict disk space and inode usage to avoid user abuse, this command may be useful anyway. By default, the current working directory is assumed if no arguments are given:
$ tree -iLf 1
Sample Output --------------------------------------------------------------------------------
. ./10-Top-Linux-Distributions-of-2015.png ./adobe-flash-player-alternative.jpg ./CentOS-7-Security-Hardening-Guide.png ./coding.png ./d-logo-sketch.png ./Experts-Share-Thoughts-on-25th-Anniversary-of-the-World-Wide-Web-431806-2.jpg ./Get-Default-OS-Logo.png ./InstallCinnamonDesktoponUbuntuandFedora720x345.png ./Install-Nagios-in-CentOS.jpg ./Install-Vmware-Workstation-12-in-Linux.png ./Install-WordPress-on-CentOS-Fedora.png ./Linux-Essentials-Bundle-Course.png ./Linux-Online-Training-Courses.png ./Linux-PDF-Readers-Viewers-Tools.png ./linux-play-game.jpg ./logo.png ./nrpe-3.0.tar.gz ./Python-and-Linux-Administration-Course.png ./Ravi ./teamviewer 11 0 57095 i386 ./Telegram ./tsetup.0.10.1.tar.xz ./VBoxGuestAdditions_5.0.0.iso ./Vivaldi-About.png ./VMware-Workstation-Full-12.1.1-3770994.x86_64.bundle
3 directories, 22 files
If you want to view the same information for /var/log, do:
$ tree -iLf 1 /var/log
Sample Output --------------------------------------
/var/log /var/log/alternatives.log /var/log/apt /var/log/aptitude /var/log/auth.log /var/log/boot.log /var/log/bootstrap.log /var/log/btmp /var/log/btmp.1 /var/log/ConsoleKit /var/log/cups /var/log/dmesg /var/log/dpkg.log /var/log/faillog /var/log/fontconfig.log /var/log/fsck /var/log/gpu-manager.log /var/log/hp /var/log/installer /var/log/kern.log /var/log/lastlog /var/log/mdm /var/log/mintsystem.log /var/log/mintsystem.timestamps /var/log/ntpstats /var/log/samba /var/log/speech-dispatcher /var/log/syslog /var/log/syslog.1 /var/log/teamviewer11 /var/log/unattended-upgrades /var/log/upstart /var/log/vbox-install.log /var/log/wtmp /var/log/wtmp.1 /var/log/Xorg.0.log /var/log/Xorg.0.log.old
13 directories, 23 files
Type the command below to view information about files and subdirectories in the directory ISOs.
$ tree -iLf 1 ISOs
Sample Output -----------------------------------------
ISOs ISOs/CentOS-6.5-x86_64-minimal.iso ISOs/CentOS-7.0-1406-x86_64-Minimal.iso ISOs/CentOS-7-x86_64-DVD-1503-01 ISOs/ces-standard-3.3-x86_64.iso ISOs/debian-8.1.0-amd64-CD-1.iso ISOs/kali-linux-2.0-i386 ISOs/openSUSE-13.2-DVD-x86_64.iso ISOs/rhel-server-7.0-x86_64-dvd.iso ISOs/ubuntu-14.04.2-desktop-amd64.iso ISOs/ubuntu-14.04.3-server-amd64.iso ISOs/VL-7.1-STD-FINAL.iso ISOs/Win10_1511_1_English_x32.iso ISOs/Win10_1511_1_Spanish_64.iso
2 directories, 11 files
Explaining tree options used in the command above:
-i – its a graphical option that enables tree to print out indentation lines
-L – specifies the level of depth of the directory tree to be displayed, which in the case above is 1
-f – makes tree print the full path prefix for every file
As you can view from the image above, after listing all the files and subdirectories, tree shows you the total number of directories and files in the directory you specified.