Short answer: Nothing
Long answer: It is part of a command that deletes everything. The only thing missing is the argument specifying what to delete. Examples:
rm -rf * rm -rf /some/directoryIt’s somewhat (in)famous because it’ll do so without asking for confirmation. The only exception is
rm -rf /on a modern distro which will complain that you’re attempting to delete EVERYTHING on the system. In the olden days it’d just do it, but these days it tells you to add--no-preserve-rootas well if you really wish to do so.You have it backwards.
rm -fr /*removes the French language pack that comes preinstalled on your system./j
Surely you can tell us, Codewizard!
Creating a quick test vm isn’t that hard, go nuts.
It will delete everything in the directory after that, without asking for further confirmation.
Unless it’s on /, where preserve-root should be kicking in, unless the bypass flag is used (can’t remember this one)
Not all systems have the preserve-root flag enforced, actually… I accidentally did the
rm -rf /in a bash script (the variable for the path returned empty), and it irreversibly deleted a bunch of my system, including sudo and a big part of /etc, before I realized and did Ctrl+C. However the damage was done, rendering the system both unusable and unbootable. Fortunately I managed to recover some data, as the drive was not encrypted.Edit: Yes, like a fool I ran the script as sudo… I am now older and wiser.
What distro was this out of curiosity? As far as I’m aware preserve-root enforcement comes from upstream coreutils
No, it does nothing.
$ mkdir test $ cd test ~/test$ touch 1 2 3 4 5 ~/test$ rm -rf ~/test$ ls 1 2 3 4 5If you dont specify the
-foption, which among other things tellsrmto be quiet, it throws an error:$ rm -r rm: missing operand Try 'rm --help' for more information.Because you’re using it on nothing.
$ mkdir test $ cd test ~/test$ touch 1 2 3 4 5 ~/test$ cd .. $ rm -rf test $ lsNo more test folder.
Exactly, but that wasn’t the question.
What are you talking about? The does exactly what I said it does.
It only does nothing for you because you used it incorrectly (in the wrong folder without the required argument).
The question is:
what happens when you give the command in the command line rm -rf ?
rm -rf *or hererm -rf testare different commands.rm is the command, -rf are the flags and “test” is an required argument. So no, they are not different commands.
No, the argument is not required, the command is valid. It’s intentional and a neat feature that
rm -rfalone without a specified file does nothing.See e.g.: https://unix.stackexchange.com/a/553741
rm -rf
For even more fun, add a single / at the end.
/s





