在Unix下不可删除的目录?

即使作为根不能删除目录是可能的吗? 什么可能是目录不被删除的情况?

那么文件系统没有错。

系统上运行的应用程序完美。

试图用文件删除目录,而不是挂载/只读。

这是与某人有什么关系或在使用不确定吗?

我正在尝试从一个shell脚本,不能看到错误消息,并需要摆脱这个目录很糟糕。

各种可能性:

  • 文件系统安装为只读
  • 不可变位设置(系统特定)
  • 来自混沌悲观:文件系统受损
  • 从MarkR的好想法:如果它不是空的,你不能删除它。 使用ls -A来检查隐藏的文件…

NFS通常不包括root的所有写入权限(可以使用no_root_squash挂载选项启用)(但是,除非绝对相信networking上的所有机器,否则要这样做; NFS有时被称为“无文件安全性”,有一个原因根目录被默认禁用))。

Linux具有常规权限(读/写/执行)以及扩展属性 ,这些属性通常不太为人所知。

其中之一就是防止连根修改文件的不变属性。

不可变的位用chattr + i 文件设置,用chattr -i 文件取消设置

另一个是append属性,它只允许你附加到文件(不知道这是如何处理目录)

追加位用chattr + 文件设置,用chattr -i 文件取消设置

即使您是root用户,也不能使用rmdir删除非空目录。 还有其他一些常见问题,如只读文件系统,io错误等

要包含一些内容的目录,你必须做一个recursion删除 。 在我的ArchLinux机器上,它是$ rm -rf /path/to/dir

小心点, 非常小心。

$ rm -rf /你的系统和再见高清没有任何警告。

嗯…好吧,几个基本的案例,其中一些已被提及(因此社区维基旗帜):

  • 你正在使用rm而没有-r arg

     rm -r directory 
  • 您正试图从只读文件系统中删除

     mount -o remount,rw /mount/point 
  • 你正在尝试从一个root-squash的NFS分区中删除

    (在这里你什么也做不了,除非你允许改变NFS服务器上的设置)

  • 您正尝试从只读介质(例如只读引脚设置的磁盘,具有locking的mmc等)中删除。

    更改物理保护(可能需要重新启动)

删除目录. 不起作用:

 $ sudo rm -rf . rm: cannot remove directory `.' 

点击这里查看如何删除当前的工作目录

这里有一些想到的事情:

  1. 其中的目录或文件正在使用中 – 您可以使用lsof(或类似的东西),看看是否有人有一个打开的句柄,你想要删除的东西
  2. 目录或其中的文件有特殊字符,需要转义删除
  3. 其中的目录或文件有空格需要转义删除
  4. 该脚本当前正在您要删除的目录中运行

文件系统损坏。