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:

  1. Navigate to the directory containing the folder you want to delete (optional).
    $ cd /path/to/parent-directory
  2. 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'
  3. 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'
  4. 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: 
    $
Discuss the article:

Comment anonymously. Login not required.