- How to Remove a Directory and File in Linux Using ‘rm’ Command
- Remove File in Linux
- Remove Multiple Files in Linux
- Remove Directory in Linux
- Remove Files with Confirmation in Linux
- Remove Directory with Confirmation in Linux
- Force Remove Directory in Linux
- Delete Directory with Verbose in Linux
- rm -rf / Command in Linux
- Create rm Command Alias in Linux
- Does rm Remove Files in Linux
- How do I remove a directory and all its contents?
- Remove a Directory in Linux – How to Delete Directories and Contents From the Command Line
- The Linux rm Command
- rm Command Syntax
- Linux rm Command Example
- Conclusion
- How to remove files and directories quickly via terminal (bash shell) [closed]
- 4 Answers 4
How to Remove a Directory and File in Linux Using ‘rm’ Command
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.
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.
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.
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.
When you combine the -r and -f flags, it means that recursively and forcibly remove a directory (and its contents) without prompting for confirmation.
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 -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.
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.
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.
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.
How do I remove a directory and all its contents?
The following command will do it for you. Use caution though if this isn’t your intention as this also removes files in the directory and subdirectories.
«-f» is «—force» which overrides some sanity checks and prompting. A safer command to start with would be rm -r directoryname .
@JimParis I think the word «safer» is relative. Suppose you are writing a script to run on a remote computer. That script has a command which is supposed to remove a directory. Here, it would be «safer» to use rm -rf directoryname coz you wouldn’t want your script to pause execution, because it’s waiting for user input. Of course, you have to be sure that deleting the directory would do no harm.
if rm -rf directoryname fails you, try using rm -R -f directoryname , or rm —recursive -f directoryname .
If you are not having any luck with these, you should consider reinstalling rm or switching shells.
These were the options available on my rm man page, I looked it up by typing man rm to view my options on recursive deletion and the force options.
Does your rm man page list -r ? What does it do? (Try it in a directory that you create just for testing purposes, with only dummy files (and maybe subdirectories) in it.) What operating system are you using?
P.S. If rm -r doesn’t work, that would be an OS issue, not a shell issue. (Strictly speaking, it would be an issue with the version of rm that you’re using, so you could address it by installing a different version of rm , or searching your system to see whether you already have a different version of rm in some directory other than /bin .)
Ah, right. I forgot to mention I’m on Ubuntu 14.04 When I ran man rm in my terminal, it gave me a text file with the less text viewer. I scrolled found an indented entry with a whole that had the -R and —recursive options cozied up with the -r option, signifying that all of those arguments are identical.
edit: have you tried sudo rm -r directoryName ? The unwritten rules of the basic commands is that -r will allow a program to run recursively on every file your filesystem (starting where ever you choose!) and that -f will forcefully do things, even if it’s dangerous. ‘cd’, ‘mv’, ‘ls’ mostly holds this principle true. ls -r / is gonna be a duzie, and cp -rf / /dev/null will destroy everything on your filesystem.
Other answers show how to completely remove a directory’s content, but IMO they don’t address the literal question of the original post — that is, how can one delete subdirectories (as opposed to usual files). In other words, how can one delete empty directory structures while keeping subdirectories containing files ?
This can be achieved with find :
find directoryname -type d -delete
This command will recursively search for directories ( -type d ) through directoryname and -delete them only if their subdirectories or themselves don’t contain any files.
Remove a Directory in Linux – How to Delete Directories and Contents From the Command Line
Ilenia Magoni
Linux is a popular open source operating system, and its features are often available in your development environment. If you can learn its basic commands, it’ll make your life as a developer much easier.
In this guide you will learn how to delete directories and files from the Linux command line.
The Linux rm Command
The rm (short for remove) command is pretty useful. Let’s learn its syntax and look at a few examples to see it in action.
rm Command Syntax
The syntax is shown below, with args being any number of arguments (folders or files).
Without options you can use it to delete files. But to delete directories you need to use the options for this command.
The options are as follows:
- -r , «recursive» – this option allows you to delete folders and recursively remove their content first
- -i , «interactive» – with this option, it will ask for confirmation each time before you delete something
- -f , «force» – it ignores non-existent files and overrides any confirmation prompt (essentially, it’s the opposite of -i ). It will not remove files from a directory if the directory is write-protected.
- -v , «verbose» – it prints what the command is doing on the terminal
- -d , «directory» – which allows you to delete a directory. It works only if the directory is empty.
Linux rm Command Example
Let’s take a project_folder directory as an example. It has these files and folders inside:
Let’s use this directory to show how the various options work.
You can add the option -v to all commands so that it will write down step by step what’s going on.
So, let’s start with the first option, -r . You just learned that this removes files and folders recursively. You can use it like this rm -r project_folder or also rm -rv project_folder as the verbose option.
It has deleted the project_folder directory and everything inside it, in the order shown.
Let’s recreate the folder and try again.
What happens if you don’t use the -r option and you try to delete the directory anyway? It will not allow it and will instead show an error:
To delete directories you can use the -d option, but if you try to use it in this case it will give an error as the folder is not empty.
The -i option make so that it asks about each action individually.
And you need to press y or n and then Enter after each query.
If you select y for all queries it will delete everything:
If instead you decide to not delete some files or folders, with n it will keep those files and continue with the rest:
The last option we haven’t seen so far is -f , which will suppress errors.
For example writing as below you would be trying to delete two non existing files – there is not a rat.png file, and dog.pmg has a typo and it gives two errors. With the -f option, you will not see the errors.
Conclusion
The Linux command line is pretty useful if you’re a developer. In this article, you have seen one of its possible commands, rm , that you can use to delete directories and files.
Enjoy this new tool in your arsenal!
How to remove files and directories quickly via terminal (bash shell) [closed]
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
From a terminal window: When I use the rm command it can only remove files.
When I use the rmdir command it only removes empty folders. If I have a directory nested with files and folders within folders with files and so on, is there a way to delete all the files and folders without all the strenuous command typing? If it makes a difference, I am using the Mac Bash shell from a terminal, not Microsoft DOS or Linux.
Just in case you wish to restore the files in future , don’t use «rm» for such cases . Use «rm-trash» : github.com/nateshmbhat/rm-trash
4 Answers 4
-r «recursive» -f «force» (suppress confirmation messages)
+1 and glad you added the «Be careful!» part. definitely a «Sawzall» command that can quickly turn a good day into a bad one.. if wielded carelessly.
@itsmatt: You know what they say. give someone a Sawzall, and suddenly every problem looks like hours of fun!
On a Mac? Do this instead: brew install trash then trash -rf some_dir This will move the unwanted directory into your trashbin instead of just vanishing Prestige-style into the ether. (source)
Would remove everything (folders & files) in the current directory.
But be careful! Only execute this command if you are absolutely sure, that you are in the right directory.
Yes, there is. The -r option tells rm to be recursive, and remove the entire file hierarchy rooted at its arguments; in other words, if given a directory, it will remove all of its contents and then perform what is effectively an rmdir .
The other two options you should know are -i and -f . -i stands for interactive; it makes rm prompt you before deleting each and every file. -f stands for force; it goes ahead and deletes everything without asking. -i is safer, but -f is faster; only use it if you’re absolutely sure you’re deleting the right thing. You can specify these with -r or not; it’s an independent setting.
And as usual, you can combine switches: rm -r -i is just rm -ri , and rm -r -f is rm -rf .
Also note that what you’re learning applies to bash on every Unix OS: OS X, Linux, FreeBSD, etc. In fact, rm ‘s syntax is the same in pretty much every shell on every Unix OS. OS X, under the hood, is really a BSD Unix system.