Finding empty directories
It depends a little on what you want to do with the empty directories. I use the command below when I wish to delete all empty directories within a tree, say test
directory.
find test -depth -empty -delete
One thing to notice about the command above is that it will also remove empty files, so use the -type d option to avoid that.
find test -depth -type d -empty -delete
Drop -delete
to see the files and directories matched.
If your definition of an empty directory tree is that it contains no files then you be able to stick something together based on whether find test -type f
returns anything.
find
is a great utility, and RTFM early and often to really understand how much it can do :-)
You can use the following command:
find . -type d -empty
Check whether find <dir> -type f
outputs anything. Here's an example:
for dir in A B C; do
[ -z "`find $dir -type f`" ] && echo "$dir is empty"
done
find directory -mindepth 1 -type d -empty -delete
This is the version that I found most interesting. If executed from inside directory, it will delete all empty directories below (a directory is considered empty if it only contains empty directories).
The mindepth option prevents the directory itself from being deleted if it happens to be empty.
find . -type d -empty
finds and lists empty directories and sub-directories in the current tree. E.g. resulting list of empty dirs and subdirs:
./2047
./2032
./2049
./2063
./NRCP26LUCcct1/2039
./NRCP26LUCcct1/2054
./NRCP26LUCcct1/2075
./NRCP26LUCcct1/2070
No operation is made on the directories. They are simply listed. This works for me.