12.7 rmdir: Remove empty directories

rmdir removes empty directories. Synopsis:

rmdir [option]… directory

If any directory argument does not refer to an existing empty directory, it is an error.

The program accepts the following options. Also see Common options.


Ignore each failure to remove a directory that is non-empty.


Remove directory, then try to remove each component of directory. So, for example, ‘rmdir -p a/b/c’ is similar to ‘rmdir a/b/c a/b a’. As such, it fails if any of those directories turns out not to be empty. Use the --ignore-fail-on-non-empty option to make it so such a failure does not evoke a diagnostic and does not cause rmdir to exit unsuccessfully.


Give a diagnostic for each successful removal. directory is removed.

See rm: Remove files or directories, for how to remove non-empty directories recursively.

To remove all empty directories under dirname, including directories that become empty because other directories are removed, you can use either of the following commands:

# This uses GNU extensions.
find dirname -type d -empty -delete

# This runs on any POSIX platform.
find dirname -depth -type d -exec rmdir {} +

An exit status of zero indicates success, and a nonzero value indicates failure.