Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Up until now I was using Ubuntu, and the behaviour of rm for directories was the following:

  • rm -r dir would remove dir if it was empty, and give an error otherwise
  • rm -rf dir would remove dir and its contents recursively

It's possible that rm was aliased to something to behave this way, but I no longer have access to my Ubuntu system so I can't tell.

Now I switched to Linux Mint, and the behaviour is different: rm -r removes a directory and its contents recursively, just like rm -rf did on Ubuntu.

I looked at rm's manpage on Linux Mint to try to find a combination of options that would reproduce the Ubuntu behaviour, but I couldn't find any.

My questions are:

  • Why is the behaviour of rm different between Linux distributions? Isn't it a standard tool that should be the same everywhere?
  • How do I achieve the behaviour described at the beginning of the question?
share|improve this question
    
This is nonstandard behavior for rm. I have never had rm behave this way on Ubuntu, Red Hat, SuSE, or any other mainstream distro that I've used. Are you sure you weren't using rmdir instead? –  rob Aug 1 '13 at 21:47
    
@rob: Quite sure. I will investigate next time I'm at a Ubuntu system with this behaviour. –  HighCommander4 Aug 1 '13 at 22:29
add comment

2 Answers

It could be possible that rm was aliased to something on your Ubuntu system (in .bashrc, for example). rm -r deletes the dir and it's contents for me on Ubuntu 12.04. rm -f needs to be used for cases where there are different permissions on the content of the dir (for example, read-only files).

share|improve this answer
    
Do you have any idea of what rm might have been aliased to on my Ubuntu system to get the behaviour I described? I looked at man rm on my Linux Mint system but couldn't find any options that would yield that behaviour. –  HighCommander4 Aug 1 '13 at 20:37
    
What error did you get when you ran rm -r <dir> on a directory with content inside it? –  Gurkaran Singh Aug 1 '13 at 20:41
    
The error was: rm: cannot remove '<dir>': Directory not empty. –  HighCommander4 Aug 1 '13 at 20:44
    
Perhaps it could have been a filesystem error on your Ubuntu machine? See: superuser.com/questions/383221/… and linuxquestions.org/questions/linux-general-1/… –  Gurkaran Singh Aug 1 '13 at 20:52
1  
I think default behavior is only to throw that error if a file is in use. –  Raystafarian Aug 1 '13 at 21:08
show 1 more comment

Use the rmdir command, it will only remove empty directories

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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