The rm command is a UNIX and Linux command line utility for removing files or directories on a Linux system. In this article, we will clearly explain what actually rm and “rm -rf” commands can do in Linux.
In addition, we will share a few useful examples of removing a file, removing a directory, removing multiple files or directories, prompting for confirmation, removing files recursively, and forcing the removal of files.
The rm command is also one of the frequently used commands on a Linux system, but also a dangerous command that you will discover later on in this article.
Table of Contents
Remove File in Linux
By default, the rm command only removes file or files specified on the command line immediately and it doesn’t remove directories.
$ mkdir -p tecmint_files $ touch tecmint.txt $ rm tecmint.txt $ rm tecmint_files
Remove Multiple Files in Linux
To remove multiple files at once, specify the file names one by one (for example file1 file2) or use a pattern to remove multiple files (for example, a pattern ending with .txt
) at one go.
$ rm tecmint.txt fossmint.txt [Using Filenames] $ rm *.txt [Using Pattern]
Remove Directory in Linux
To remove a directory, you can use the -r
or -R
switch, which tells rm to delete a directory recursively including its content (sub-directories and files).
$ rm tecmint_files/ $ rm -R tecmint_files/
Remove Files with Confirmation in Linux
To prompt for confirmation while deleting a file, use the -i
option as shown.
$ rm -i tecmint.txt
Remove Directory with Confirmation in Linux
To prompt for confirmation while deleting a directory and its sub-directories, use the -R
and -i
option as shown.
$ rm -Ri tecmint_files/
Force Remove Directory in Linux
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 tecmint.txt
When you combine the -r
and -f
flags, it means that recursively and forcibly remove a directory (and its contents) without prompting for confirmation.
$ rm -rf fossmint_files
Delete Directory with Verbose in Linux
To show more information when deleting a file or directory, use the -v
option, this will enable the rm command to show what is being done on the standard output.
$ rm -rv fossmint_files
rm -rf / Command in Linux
You should always keep in mind that “rm -rf”
is one of the most dangerous commands, that you can never run on a Linux system, especially as root. The following command will clear everything on your root(/)
partition.
# rm -rf /
Create rm Command Alias in Linux
As a safety measure, you can make rm always prompt you to confirm a deletion operation, every time you want to delete a file or directory, using the -i
option.
To create an alias for the rm command permanently, add an alias in your $HOME/.bashrc
file.
alias rm="rm -i"
Save the changes and exit the file. Then source your .bashrc
file as shown or open a new terminal for the changes to take effect.
$ source $HOME/.bashrc
This simply implies that whenever you execute rm, it will be invoked with the -i
option by default (but using the -f
flag will override this setting).
$ rm fossmint.txt $ rm tecmint.txt
Does rm Remove Files in Linux
Actually, the rm command never deletes a file, instead, it unlinks from the disk, but the data is still on the disk and can be recovered using tools such as PhotoRec, Scalpel, or Foremost.
If you really want to permanently delete a file or directory, you can use the shred command-line tool to overwrite a file to hide its contents.
That’s it! In this article, we have explained some really useful rm command examples and also elaborated on what the “rm -rf” command can do in Linux. If you have any questions, or additions to share, use the comment form below to reach us.
Thank you for the amazing article! I used to use
rm -rf
without knowing what it meant, now I do!@Anas
Thanks for the useful feedback.
What happens when
rm -rf *
command is used on any path. For example, what happens when this is done to “company/employe/ rm -rf *” where the employe directory has got sub directories in it? Will it throw an error or it deletes the files and all the sub directories present in employe directoryExcellent article, very useful for newbie like me..
@Uma
Many thanks for the feedback.
If you want to delete a lot of files, 10.000 and more for example – command rm doesn’t help you.
Too many files for read…
You have to find other way to delete over many files.
How can you hope to explain what a command does when you can’t even title your article correctly?
@No
Thanks for the heads up, we will correct the heading soon.
rm -rf
what does it do.If you execute it on customer files, rm – rf takes away your job.
@Rajesh
That’s correct, thanks for sharing your thoughts with us.
I learned new thing about rm. Good one.
@Shiva
We are glad that you learned something new about rm, thanks for the feedback.