Black Friday Deals for Linux Users are Now Live!
Learn more
Nov 12, 2022 3 min read

Find Empty Directories in Linux Command Line

Table of Contents

Linux users are bound to have multiple empty directories and it's quite easy to find them.

But wait, just listing empty directories won't do the job so I'll also show you how to delete them!

Find Empty Directories in Linux

To Find an empty directory, you'll just have to pair the -empty option with the find command. Let me show you how:

find /home/sagar/Files -type d -empty
find empty directories in Linux

When you use the find command with the -type d option, it will search for directories only.

Find Empty Files in Linux

As I mentioned just above that -type d was used to search for directories, you can change this behavior to search for files  by using type f.

find /home/sagar/Files -type f -empty
find empty files in Linux

Find is an excellent command. If you are interested in learning more, here are a few more examples 👇

15 Super Useful Examples of Find Command in Linux
Learn the super powerful and super useful find command with these practical examples.
⚠️
Don't go blindly running the delete command, please. Be careful about what you delete.

Delete Empty Files and Directories using Find Command

To delete the files and directories given by the find command, you just have to use the -delete option.

So let's start with deleting empty directories:

find /home/sagar/Files -empty -type d -delete
Delete empty directories using find command

You can do the same with files by interchanging -type d with -type f:

find /home/sagar/Files -empty -type f -delete
Delete empty files using find command

Delete Empty Files and Directories using xargs and find-exec

The find exec is nothing but allows you to execute custom operations such as running scripts and executing programs on search results.

While xargs can take input from the standard input or even consider the output of another command as input and can use it as a command.

So let's start with removing empty files and directories using the find with the exec command.

To remove empty files, you just have to utilize the given command:

find /home/sagar/Files -type f -empty -print0 -exec rm -v "{}" \;
Delete empty files using find exec command

And if you want to remove directories, the given command should work just fine:

find /home/sagar/Files -type d -empty -print0 -exec rmdir -v "{}" \;
Delete empty directories using find exec command

Now, let's use xargs with find to remove empty directories:

find /home/sagar/Files -type d -empty -print0 | xargs -0 -I {} /bin/rmdir "{}"
Delete empty directories using xargs with find command

Similarly, with a few tweaks to the above command and you can remove empty files:

find /home/sagar/Files -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"
Delete empty directories using xargs with find command

And if you're curious to learn more about xargs, we already have a detailed guide on that topic:

How to Use Xargs Command in Linux [Explained With Examples]
xargs is one of the most powerful commands in Linux. In this tutorial, you’ll learn to use xargs command with some practical and useful examples.

Final Words

Well, this was a short guide on how you can remove empty files and folders and I've tried my best to make it beginner friendly.

But still, if you encounter any doubts, I'd be happy to help!

Linux Foundation Training
Sagar Sharma
A software engineer who loves to tinker with hardware till it gets crashed. While reviving my crashed system, you can find me reading literature, manga, or watering my plants.
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Linux Handbook.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.