Removing a directory in Linux is a common task for managing files and directories on your system. While graphical tools are available, using the command line is often necessary, especially when working remotely or in a server environment. Command-line tools offer precision and control, making them the preferred method for many users.
There are two main commands to remove directories in Linux: rmdir and rm. The rmdir command is used to delete empty directories, while the rm command can remove directories that contain files and subdirectories. Understanding when to use each command is essential for effective file system management.
When using these commands, it’s important to know the correct options and syntax to avoid unintended data loss. For example, the rm command can delete non-empty directories if used with the correct options. Learning these commands helps ensure that you can remove directories safely and efficiently in any Linux environment.
Steps to remove a directory in Linux:
- Open a terminal on your Linux system.
- Navigate to the directory containing the folder you want to delete (optional).
$ cd /path/to/parent-directory
- Use the rmdir command to remove an empty directory.
$ rmdir myfolder/ rmdir: failed to remove 'myfolder/': Directory not empty $ rm myfolder/* $ rmdir myfolder
rmdir will only succeed if the directory is empty. If it contains files, the command will fail with an error message.
More options for rmdir:
$ rmdir --help Usage: rmdir [OPTION]... DIRECTORY... Remove the DIRECTORY(ies), if they are empty. --ignore-fail-on-non-empty ignore each failure that is solely because a directory is non-empty -p, --parents remove DIRECTORY and its ancestors; e.g., 'rmdir -p a/b/c' is similar to 'rmdir a/b/c a/b a' -v, --verbose output a diagnostic for every directory processed --help display this help and exit --version output version information and exit GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Full documentation <https://www.gnu.org/software/coreutils/rmdir> or available locally via: info '(coreutils) rmdir invocation'
- If the directory is not empty, use the rm command.
$ rm myfolder/ rm: cannot remove 'myfolder/': Is a directory $ rm -r myfolder/
The -r option in rm stands for “recursive” and allows the command to remove the directory and its contents.
More options for rm:
$ rm --help Usage: rm [OPTION]... [FILE]... Remove (unlink) the FILE(s). -f, --force ignore nonexistent files and arguments, never prompt -i prompt before every removal -I prompt once before removing more than three files, or when removing recursively; less intrusive than -i, while still giving protection against most mistakes --interactive[=WHEN] prompt according to WHEN: never, once (-I), or always (-i); without WHEN, prompt always --one-file-system when removing a hierarchy recursively, skip any directory that is on a file system different from that of the corresponding command line argument --no-preserve-root do not treat '/' specially --preserve-root[=all] do not remove '/' (default); with 'all', reject any command line argument on a separate device from its parent -r, -R, --recursive remove directories and their contents recursively -d, --dir remove empty directories -v, --verbose explain what is being done --help display this help and exit --version output version information and exit By default, rm does not remove directories. Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents. To remove a file whose name starts with a '-', for example '-foo', use one of these commands: rm -- -foo rm ./-foo Note that if you use rm to remove a file, it might be possible to recover some of its contents, given sufficient expertise and/or time. For greater assurance that the contents are truly unrecoverable, consider using shred. GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Full documentation <https://www.gnu.org/software/coreutils/rm> or available locally via: info '(coreutils) rm invocation'
- Add the force option with rm if the directory is write-protected.
$ rm -rf myfolder/
The -f option forces the removal of write-protected files without prompting for confirmation.
- For directories requiring elevated privileges, use sudo with the rm command.
$ rm -r myfolder/ rm: descend into write-protected directory 'myfolder/'? y rm: cannot remove 'myfolder/myfile.txt': Permission denied $ sudo rm -r myfolder/ [sudo] password for user: $
You may be prompted to enter your password when using sudo.

Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
Comment anonymously. Login not required.