Consider the following directory structure:
/tmp
|-->bar.txt
|-->dir1/
|-->dir2/
| |-->baz.txt
|-->dir3/
|-->foo.txt
There are two files called bar.txt and foo.txt, a non-empty directory called dir2 and two empty directories called dir1 and dir3.
This is how you can delete only the empty directories:
sharfah@starship:/tmp> unalias rmdir
sharfah@starship:/tmp> rmdir *
rmdir: directory "bar.txt": Path component not a directory
rmdir: directory "dir2": Directory not empty
rmdir: directory "foo.txt": Path component not a directory
You need to unalias rmdir just in case you have it aliased to "rm -rf"!
You will notice that rmdir does not delete files or non-empty directories. Only dir1 and dir3 are deleted.
Another way to do it, using find:
sharfah@starship:/tmp> find . -type d -exec rmdir {} \;
rmdir: directory ".": Can't remove current directory or ..
rmdir: directory "./dir2": Directory not empty
Note that aliases aren't recognised by find, so even if you did have rmdir aliased, it would not use it.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.