How to Remove a Directory in Linux?
There are two Linux commands you can use to remove a directory from the terminal window or command line:
Thank you for reading this post, don't forget to subscribe!
- The
rm
command removes complete directories, including subdirectories and files. - The
rmdir
command removes empty directories.
It is important to note that the rm
and rmdir
commands permanently remove directories without moving them to the Trash directory. This means that you cannot restore a directory removed using these commands.
Note: Even though rm
and rmdir
permanently remove files and directories, users with enough skill and time still have a chance of restoring some of the removed files. If you want to learn more about removing files permanently, have a look at our shred command tutorial.
rm Command
The rm
command in Linux removes files and directories.
rm [options] [file or directory name]
Note: To remove multiple files or directories using the rm
command, add multiple file or directory names, separated by blank spaces.
The different rm
command options include:
- –
f
: Forces the removal of all files or directories. -i
: Prompts for confirmation before removing.-I
: Prompts once before removing more than three files or when removing recursively.-r
: Removes directories and their content recursively.-d
: Removes empty directories.-v
: Provides a verbose output.--help
: Displays the help text.--version
: Displays the command version.
Trying to use the rm
command without any options to remove a directory results in an error message:
If you want to remove an empty directory, add the -d
flag to the rm
command:
$ rm -d Example
Note: If you want to remove a directory whose name starts with a hyphen (–), use the rm -- [directory name]
or rm ./[directory name]
syntax.
Use the -r
flag to delete a directory that contains subdirectories and files.
Using the -r
flag removes the entire directory, including subdirectories and files, while the -v
flag lists each step of the process as the output:
$ rm -r -v Example
The -i
option displays a prompt asking you to confirm directory removal. Type Y
and press Enter to confirm.
$ rm -d -i Example
Write-protected directories require user input when deleting. Create such a directory with:
$ sudo mkdir Example
To remove the directory, use:
$ rm -d Example
Type Y and press Enter to confirm deletion. To avoid the confirmation, use the -f
flag or elevate the command privileges to sudo:
$ rm -d -f Example
$ sudo rm -d Example
If the write-protected directory contains other files and directories, use the following command:
rm -rf <directory name>
Note: rm -rf /
is a dangerous Linux command that forces a recursive deletion on the root directory, rendering your system unusable.
Avoid using -f
and sudo while removing directories, unless you know what you’re doing.
rmdir Command
The Linux rmdir
command removes empty directories only. The command uses the following syntax:
rmdir [options] [directory name]
The rmdir
command includes the following options:
--ignore-fail-on-non-empty
: Doesn’t show an error message when trying to remove a non-empty directory.-p
: Removes the directory along with its parent in the hierarchy.-v
: Provides a verbose output.--help
: Displays help text.--version
: Displays the command version.
Using the rmdir
command on a non-empty directory produces an error.
In this case, the Example directory contains the Test subdirectory:
To remove these directories using the rmdir
command, add them in reverse order of hierarchy. Using the -v
option lists each step of the process as the output:
$ rmdir -v Example/Test Example
A simpler method of doing this is to use the -p
option with the subdirectory’s name. This removes both the subdirectory and its hierarchical parent:
$ rmdir -p -v Example/Test
The rmdir
command allows you to remove multiple directories with similar names using wildcards. For instance, if you want to remove directories named Example1, Example2, and Example3:
$ rmdir -v Example*