rmdir removes empty directories. Unlike rm -r, it only works on directories that contain no files.
Synopsis
rmdir [OPTIONS] DIRECTORY...
Common Options
| Option | Description |
|---|
-p | Remove parent directories too |
-v | Verbose output |
Examples
Remove empty directory
Remove with parents
$ rmdir -p path/to/empty/dir
# Removes dir, then empty, then to, then path (if all empty)
Verbose
$ rmdir -v folder1 folder2
rmdir: removing directory, 'folder1'
rmdir: removing directory, 'folder2'
Error on non-empty
$ rmdir non_empty_folder
rmdir: failed to remove 'non_empty_folder': Directory not empty
rmdir vs rm -r
| Command | Use Case |
|---|
rmdir | Safe, only removes empty directories |
rm -r | Removes directory and all contents (dangerous) |
# Safe - will fail if not empty
$ rmdir folder
# Dangerous - deletes everything inside
$ rm -r folder
Common Patterns
Remove if empty
$ rmdir folder 2>/dev/null || echo "Not empty"
Remove all empty directories
$ find . -type d -empty -delete
Clean up directory tree
$ rmdir -p project/old/temp/files 2>/dev/null
Tips
- Safer than rm -r: Won’t accidentally delete files
- Use in scripts: Good for cleanup when directories should be empty
- Alternative:
find -type d -empty -delete for bulk operations - Check first:
ls -la to verify directory is empty
See Also
- mkdir — Create directories
- rm — Remove files and directories
Tutorials