Linux Delete Directory With rmdir Command

Posted on in Categories , , , , , , , , , , , , last updated December 13, 2009

I‘m new to Linux and I’d like to know how to delete directory under any Linux distributions?

You need to use the command called rmdir. It remove empty directories.

rmdir command syntax

rmdir [OPTION] {directory-name}

Delete / remove directory

To delete directory called foo, enter:
rmdir foo

Remove DIRECTORY and its ancestors

For example remove directory structure sales/99/march
rmdir -p sales/99/march

Recursive delete

Remove all directories and subdirectories, use rm command with -r option:
rm -rf /home/data/2000

Please note that rmdir command works with all Linux and Unix like operating systems. For more information read rm and rmdir command man pages:
man rm
man rmdir

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

17 comment

  1. rm [options] files | directories

    The rm (remove) command can delete files:

    $ rm file1 file2 file3

    or recursively delete directories:

    $ rm -r dir1 dir2 dir3

    Some Useful Options:

    -f “Forces the deletion ignoring any errors or warnings.
    -i “Asks before deleting each file”
    -r recursively removes a dir(s) and it’s content(s). Use with extreme caution, especially if combining it with the -f option!

    You can also use the rmdir command:

    The rmdir (remove directory) command deletes one or more empty directories you name.

    To delete an entire directory path (Use with extreme caution!) use the -p option along with the directory path (not just the directory name):
    rmdir -p dir1/dir2/dir3

    The above example would delete not just dir3, but dir1 & dir2 as well!

    This will delete dir1,dir2 & dir3!

    1. Think common sense comes into play if your not sure how a command works do not use it until you are sure…i wouldn’t fly a plane on instructions given to me by someone i don’t know….would you?

    1. Generally speaking (depending on what shell you’re in – BSH, CSH & BASH should be fine), a “\” is an escape character, which means it transforms special characters (“\” included) into string literals. So running “rm -rf ./\\” would recursively delete a directory in the current directory by the name of “\”. Hope this helped.

  2. I wanted to copy all files from one folder to another but leaving all folders that started with S, so i used command:

    cp -R [!S]* /NewFolder/

    and it seems it is doing what i wanted. i’ll update here (InshahAllah) when finished copying ..

  3. find /path/to/folder -type d -print -delete

    will print and delete only empty directories AND directories containing empty directories within /path/to/folder. Omit -print if you don’t need the list

Leave a Comment