Bash Shell Script To Test For Empty Folder

Posted on in Categories last updated July 6, 2012

How do I check if a directory contains files? How do I find out if a directory contains files using bash shell under Linux or Unix like operating systems?

To test if folder is empty or not use the following methods.

Method # 1: Find command

The syntax is:

find /path/to/dir -maxdepth 0 -empty -exec echo {} is empty. \;

You can modify it as follows to work with shell if command:

[ $# -eq 0 ] && { echo "Usage: $0 directory"; exit 2; }
[ ! -d "$dir" ] && { echo "$dir is not a directory."; exit 2; }
if find "$dir" -maxdepth 0 -empty | read;
 echo "$dir empty."
 echo "$dir not empty."

Run the script as follows:
./script /etc
Sample outputs:

/etc not empty.

Create a directory / folder called /tmp/foo using mkdir command:
$ mkdir /tmp/foo
Run the script as follows:
./script /tmp/foo
Sample outputs:

/tmp/foo empty.

Method #2: Other commands

See our previous tutorial and comments for more info:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

5 comment

Leave a Comment