In this tutorial, you will learn the different methods of how to delete or remove a directory on a Unix or Linux filesystem.
There are a few utilities provided by Linux for deleting things on a Linux filesystem. Each simplistic and with their own strengths, but extremely effective. You will learn about the
rm and the
rmdir commands and their differences.
You will also learn how to securely wipe data from a Linux filesystem using the
rm command. An important and crucial understanding when dealing with Personal Identifiable Information (PII) or passwords.
How to use the rmdir command
The rmdir command removes a directory or list of directories from the file system, provided that they are empty. The command is very simplistic and does not offer much in the way of features.
Deleting a single, empty directory.
To delete a single empty directory rmdir enter the directory path as an argument. For example, to delete a directory
/tmp/logs, you would use the following command.
Deleting Multiple Empty Directories with rmdir
A list of directories can be given to the
rmdir command. Each directory will be removed, provided it is empty.
To delete multiple directory you will need to use the
-p flag. When set, each directory argument is treated as a pathname of which all components will be removed.
For example, to delete directories
/tmp/downloads, you would run the following
rmdir -p /tmp/logs1 /tmp/logs2 /tmp/downloads
Deleting non-empty directories with rm
rm command is typically used for removing non-directory type files. However, it does support removing directories and it is the most common method for removing them.
rmdir command, the
rm command will remove empty and non-empty directories. If a directory is not empty, its contents will be deleted along with the directory. This includes nested directories.
Removing directories and other file types with rm
To remove directories with the
rm command, you can use
-d flag. This instructs
rm to include directories when deleting filesystem objects, which are excluded by default.
rm -d ./temp/data
Deleting nested directory hierarchy with rm
rm command can also delete nested directories. In order to delete a directory hierarchy on a Linux filesystem, you use the
rm command will prompt you to confirm the nested directory deletion, as this can be a very destructive action.
rm -r ./tmp/data
Forcefully delete nested directories with the rm command
The most commonly used way of deleting directories and nested directories on a Linux file system is to do so forcefully. This a very dangerous way of deleting an entire directory hierarchy, as there is no confirmation prompt.
All files and directories in the path given will be removed from the filesystem, provided the user has permission to those files and directories. Use this command with extremely caution.
To forcefully remove all files and directories, you use the
-r and the
-f flags. Flags can be combined with a single hyphen to simply the command.
For example, to delete all files and directories under the path
/tmp/app, you would use the following command.
rm -rf /tmp/app
Secure privacy deletes with the rm command
A typical file deletion on nearly all filesystems only deletes the file’s entry in the filesystem database. The bytes will remain on disk until they are eventually overwritten.
When dealing with highly sensitive data, a simple file or directory deletion will not securely remove the data. The
rm command is capable of overwriting data on file deletion, and it does this by written a pattern of
0xff over the files.
This approach effectively makes it impossible to recover the data.
To securely delete files and directories from a Linux filesystem, use the
rm -rf -P /tmp/sensitive-data
When deleting a file from a Linux or Unux filesystem, there are several ways the task can be accomplished. You can use either the
rmdir command or the
rm command, depending on your needs.
rm command is the most common method for deleting files, as it is the only methods to delete non-empty directories. However, it can also be the most dangerous tool to use when used inappropriately.
We’ve also learned that the
rm command provides a method for secure file and directory deletion. Anytime you are handling sensitive data, such as passwords or Personal Identifiable Information (PII), it should also be deleted in a secure way to protect individual privacy and to prevent data leaks.