rm -rf Command in Linux With Examples

08 Mar, 2021
rm command in UNIX stands for remove and by default is used for removing files. It is simple but a powerful command especially when used with options such as -rf which allow it to delete non-empty directories forcefully.
The rm command, By default, cannot remove Directories and only works on files. 
$ mkdir A
$ touch B.txt
$ rm B.txt
$ rm A
We use mkdir and touch commands to make directories and text files respectively, and ls command to list files in the current working directory.
To remove multiple files at once, we can write file names separated by spaces after the rm command or use a pattern to remove multiple files that fit the pattern.
$ rm a b
$ rm *.txt        [Pattern]             
removing multiple files
To remove a directory, you can use the -r or -R switch, which deletes a directory recursively including its content (subdirectories and files). If it is an empty directory you can also use rmdir command.
$ rm a/
$ rm -R a/
removing directory
To get a confirmation prompt while deleting a file, use the -i option.
$ rm -i a.txt
removing files with confirmation
To get a confirmation prompt while deleting a directory and its sub-directories, use the -R and -i option.
$ rm -Ri A/
removing Directories with confirmation
To remove a file or directory forcefully, you can use the option -f force a deletion operation without rm prompting you for confirmation. For example, if a file is unwritable, rm will prompt you whether to remove that file or not, to avoid this and simply execute the operation.
$ rm -f a.txt
When you combine the -r and -f flags, it means that you recursively and forcibly remove a directory (and its contents) without prompting for confirmation.
$ rm -rf B
Here, we created a text file and directory and made it read-only by taking its write access using chmod command.
To show more information when deleting a file or directory, use the -v option, this will enable rm command to show what is being done on the standard output.
$ rm -rv *
rm -rf as powerful as it is, can only bypass read-only access of nested files and not directories. To delete the directory ( B/C ) we need to access it through superuser privileges.
It is not recommended to use this command as a superuser if you are not 100% sure what you are doing as you can delete important files.
You should always keep in mind that “rm -rf” is one of the most dangerous commands, that you should never run on a Linux system, especially as a root. The following command will clear everything on your root(/) partition.
$ sudo rm -rf /
There are checks to prevent root deletion but the additional option of –no-preserve-root bypass that failsafe. It’s a meme on the internet that is equivalent to deletion of system32 in your windows os C:\ drive.
$ sudo rm -rf / --no-preserve-root
You should not use the above command in any case whatsoever, for curious folks I did it use the command with –no-preserve-root.  And after some deletion of important files and directories, I was left with nothing but hanged up output shown below.
To permanently use -i option for safety, add an alias in your $HOME/.bashrc file.
alias rm="rm -i"
Source your .bashrc file as shown or open a new terminal for the changes to take effect.
$ source $HOME/.bashrc
Now, whenever you execute rm, it will be invoked with the -i option by default (but using the -f flag will override this setting).
Does rm actually Delete a File?
rm doesn’t actually delete files but rather unlink them (free the memory for further use).  To permanently delete the data you can use the shred or dd command.
linux-command
Linux-file-commands
Picked
Linux-Unix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.