Can't remove a directory in Unix
Try to delete it with root user or use sudo, if you are in trouble
Use rm -rf dir
with root account and it will be deleted, since you should be facing a permissions issue.
Check with df
dir and mount
how is your directory mounted and to which file system it belongs to. Notice that if you use NFS, CIFS/SMB, or some other distributed file system, you could have issues... since distributed file systems are caching (both server side and client side) so don't have POSIX semantics. See filesystems(5).
Very probably you are using NFS (then your question should say that, and give much more details, notably mount and export options in /etc/fstab
, see fstab(5), version of NFS protocol used, etc...). Then you need to give more details about how it is exactly mounted, if you have processes using that file system (use lsof(8)...), and how authentication works. Quite often, root access does not exactly work thru NFS as you want it to... (intuitively your local root is not a network-wide root).
In some cases, you need to remove files on the NFS server after having unmounted that remote NFS file system on all NFS clients. And details vary with version of NFS protocol used and configuration options.
See also nfsd(7), exports(5), chattr(1) etc and this question on Serverfault, and this Linux NFS overview.
Sorry, but voted 20+ approved solution didn't work for me :) but I nailed the sucker.
In my case, under root, rm -rf (directory) leads to an infinite loop, and size of the folder is under a gig. Furthermore, the folder is non-listable that is using the dir command within the folder also leads to infinite loop.
Oh Hell no!!!
Enter recovery mode by holding on to left shift at boot. Provide your root password or press enter if there is none.
cd /
mount -o remount,rw /
rm -f (directory) //Purpose is to fix loop bug
rm -r (directory)
See ya!
All hail Linux Lite.