Removing a directory in Linux is a common task, whether you're cleaning up your system or managing files on a server. While graphical tools such as Nautilus and Dolphin make it easy to delete files and folders, using command-line tools offers more flexibility and control and is a necessity when working on the command line especially in an SSH session.
The two main command-line tools for directory removal are rmdir and rm. While rmdir is specifically designed to remove empty directories, rm is a more versatile tool that can delete both files and folders, even if they contain data.
Steps to delete folder from command line in Linux:
- Navigate to the directory containing the folder you want to delete (optional).
$ cd /path/to/parent-directory
- Remove an empty folder using rmdir.
$ rmdir myfolder/ rmdir: failed to remove 'myfolder/': Directory not empty $ rm myfolder/* $ rmdir myfolder
Content of the folder or directory must be deleted first or else the command will fail.
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'
- Delete files and folders (including non-empty ones) with the rm command using the recursive option.
$ rm myfolder/ rm: cannot remove 'myfolder/': Is a directory $ rm -r myfolder/
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'
- Remove write-protected or system folders by running the appropriate command with sudo for elevated privileges.
$ 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: $

Mohd Shakir Zakaria is a skilled cloud architect with a background in development, entrepreneurship, and open-source advocacy. As the founder of Simplified Guide, he helps others understand the complexities of computing, making tech concepts accessible to all.
Comment anonymously. Login not required.