rmdir: failed to remove 'trip-pictures': Directory not empty
How can I remove non empty directory in Linux using the cli?
There are two commands that one can use to delete non empty directories in Linux operating system:
- rmdir command – Delete directory only if it is empty.
- rm command – Remove directory and all files even if it is NOT empty by passing the -r to the rm to remove a directory that is not empty.
The following commands works with CentOS, RHEL, Fedora, Alpine, Arch, Debian, Ubuntu and all other Linux distros. Let us see some examples.
Procedure to remove non empty directory in Linux
We use the rm command to delete a directory that is not empty. The syntax is:
rm -rf dir-name
rm -rf /path/to/dir/name
Be careful when you use the rm command with -r and -f options. The -r option remove directories and their contents recursively including all files. The -f option to rm command ignore nonexistent files and arguments, never prompt for anything. There is no undo option. So you have to be very careful with rm -rf command. Let us see some examples.
Examples for removing non empty directory under Linux
Trying to remove trip-pictures directory with the rmdir command in Linx:
rmdir: failed to remove 'trip-picture/': Directory not empty
To see files inside the directory use ls command
ls -l trip-pictures
To delete all files inside trip-pictures including folder itself run the following rm command:
rm -rf trip-pictures
How to get visual confirmation about deleting directory
Pass the -v to the rm command:
rm -vrf dir1
rm -vrf dir1 dir2
removed 'dir1/resume.txt' removed 'dir1/bar.txt' removed 'dir1/foo.txt' removed directory 'dir1' removed directory 'dir2/pictures' removed directory 'dir2'
How to get confirmation prompt before every removal of a dir
You need to pass the -i option to the rm command:
rm -ir foo
rm: descend into directory 'foo/'? y rm: remove regular empty file 'foo/bash.tar.gz'? y rm: remove regular empty file 'foo/db.sql'? y rm: remove directory 'foo/'? y
To get prompt once before removing more than three files, or when removing recursively; less intrusive than -i, while still giving protection against most mistakes pass the -I option:
rm -Ir bar
rm: remove 1 argument recursively? y
Want to get info on all rm and rmdir switches? Try:
You learned how to remove non empty directory under Linux or Unix-like operating systems using command line options. For more information see rm command and rmdir command command man pages by typing the following man command command:
🐧 2 comments so far... add one ↓
|Category||List of Unix and Linux commands|
|Firewall||Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04|
|Network Utilities||dig • host • ip • nmap|
|OpenVPN||CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04|
|Package Manager||apk • apt|
|Processes Management||bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time|
|Searching||grep • whereis • which|
|User Information||groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w|
|WireGuard VPN||Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04|