102

I am a new user and I am trying to remove a specific folder. I am using sudo rm /path/, but it is not working. What is the correct command to use?

It is a file catolog I am attempting to remove but I am geting a message that it is empty.

6 Answers 6

118

Be sure the folder is really empty (hidden files/folders might be in there). Look at the file contents again with

sudo ls -lha /path/

If you're absolutely certain that it doesn't contain anything you want to have (including subdirectories), delete it with

sudo rm -r -f /path/
  • -r is for recursive, so it will delete the folder and subfolders, even if it is non-empty
  • -f is for force (this might be unnecessary).
3
  • 2
    @EliranMalka The -f flag is not necessary forrm to delete items directly contained in the specified folder, which I presume is what you mean by "address the folder contents." Instead -f stands for force, causing rm never to prompt for confirmation even if the file to be deleted has no write permission (rm: remove write-protected regular file ‘foo’?), and also causing rm not to warn on an attempt to delete a file that already does not exist. It's best only to use the -f flag when it's really needed. rm -r without -f absolutely does "address the folder contents." Apr 16, 2015 at 4:35
  • wat? i honestly don't know what i was saying... forget it :) Apr 16, 2015 at 18:12
  • 1
    i had to remove the leading / to get it to work for me. ie: sudo rm -r -f path/
    – Elon Zito
    Mar 2, 2016 at 20:19
26

One thing to note is that the folder should be empty, then run the following command

rmdir directory_name

Another thing to note is that the command your are typing should not start with a slash(/) not unless the folder is under root.

The last option and you should be very careful while using this one, is to force removal of the directory in question including any other files/directories in it.

rm -rf directory_name

Cheers.

0
12

For a beginner I would not recommend getting into the habit of using rm -Rf or rm -r -f, this will bite you in the face sooner or later. Safer would be to create a systemwide alias. Open terminal: Ctrl+Alt+T, then type:

alias rm='rm -i'

So you get prompted before wiping out all your vacation photo's by accident. The second recommendation I would like to add is to use rmdir , it will complain about non-empty directories and that is exactly what you want as a newbee.

But in the sense of the question, the answer is as given here already, use -f to erase a folder.

5

If you are sure that the directory exists, then:

(sudo) rm -rfv /path/

To delete the entire directory to your folders and files

2
  • 1
    Don't use spaces in paths as you may end in trying to delete the whole filesystem recursively from /
    – cauon
    Oct 17, 2012 at 14:24
  • worked for me. I used for removing hadoop folder <code>sudo rm -rfv hadoop/ </code> Jan 10, 2014 at 14:09
2

If you want to delete all the files in directory and just want to keep the directory or some files use (with the -i flag you can keep the file or delete it).

rm -i *

-i is for interactive and will prompt you each and every time there is a file to delete.

If you need to delete sub directories along parent directory, use:

rm -rf NameOfDirectory
0

If you would like to delete the contents and overwite the data on your drive try using shread. It only removes files so to remove everything in the directory use;

sudo find <directory_name> -depth -type f -exec shred -vz -n 5 --remove=wipe {} +

then remove the empty directory

rm -rf <directory_name>

Not the answer you're looking for? Browse other questions tagged or ask your own question.