为什么我不能删除文件夹?


14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

我尝试使用以下方法从终端删除这些文件夹:

rm -r

2
如果该错误输出来自鹦鹉螺,则可以为问题添加屏幕快照。另外,rm -r终端的输出是什么?您是否尝试过此帖子的答案?
路西欧(Lucio)2013年

1
使用rm -rf代替
nickanor

我已被用于rm -Rf递归删除目录,可能是适合您的这项工作。大写字母R表示递归,请参见手册页man rm
撤销

1
您是否有权删除此目录?请执行ls -la并粘贴到此处以放弃此选项。
取消噪音

我认为该文件夹首先在Windows上删除,然后尝试在Ubuntu上删除。然后尝试在Windows上删除,但提示错误。 Directory not empty 但它完全是空洞的承诺 在Windows上显示错误Error x00000
tepheno

Answers:


10

你试过了吗sudo rm -r。有哪些文件?您也可以先删除所有文件,然后再删除文件夹。这是额外的工作,但有时值得完成工作。

sudo 用于超级用户操作。


我知道sudo并且该文件夹仅在一个子文件夹中没有文件。艺术家文件夹,然后是专辑文件夹,里面没有MP3。只是文件夹。
tepheno

它工作的家伙...
Angelin Nadar 2014年

9

我在btrfs文件系统上的文件夹有这个问题。检查安装点和lsof是正常的事情。就我而言,这是由一个旧错误引起的损坏,自修复以来:

要检查的正常情况:

  • lsof的+ d <路径> -这将š吨所有ö˚F尔斯。您不能删除包含打开文件的文件夹,尽管通常也会产生稍微不同的错误:“设备或资源繁忙”。请注意,如果省略“ + D <path>”,lsof将显示所有文件系统上所有文件夹的列表-这会浪费时间。;)
  • 安装:这将向您显示当前已挂载的文件系统。您不能删除主动安装的安装点或其父文件夹。
  • btrfs子列表<path>:与安装点类似,您无法删除btrfs子卷,除非使用特定于btrfs的命令:btrfs子卷delete <path>

腐败解决方法

对于无法轻易修复的损坏,基本的解决方法是备份,格式化文件系统,然后还原(保留坏数据)。根据文件系统中的数据量,这可能很麻烦。:-/

就我而言,问题文件夹位于子卷中,因此我能够执行上述操作,但仅删除了子卷而不是整个文件系统。我备份了数据并删除了子卷:btrfs sub del <subvolume-path>。然后,我能够还原到一个新的子卷中,而没有找到问题文件夹。

i_size的损坏

在我的情况下,发现原因是i_size损坏,其中i_size不为零。Btrfs使用i_size告知文件夹是否为空。要对此进行检查,请运行:

stat -c %s <foldername>

btrfs中空文件夹的i_size应该为零。ext通常是4k。

相关链接:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory


6

尝试cd进入目录,然后使用删除所有文件rm -rf *。然后尝试离开目录并用于rmdir删除目录。


这对我来说效果很好+1谢谢
AndrewL64

我尝试了此操作,并收到错误消息:“参数列表太长”
Rafael_Espericueta

1

尝试 sudo rm -rf [Folder name]

如果仍然显示“目录不为空”,则表示该目录正在使用中。尝试关闭它或检查哪个程序正在使用它,然后重新使用该命令。

当我尝试删除Unity项目时,为我工作,Unity Hub使用了该项目。只需关闭统一枢纽并重写命令即可正常工作。


0

转到要删除的文件夹之前的文件夹,然后执行以下命令,通过文件夹名称更改文件夹名称:rm -rf foldername

R表示递归,f表示强制。


rm: cannot remove Wan Pisu - New World': Directory not empty
tepheno

你用了-rf吗?
拉蒙·苏亚雷斯

-rf我想我用过rm -r -f -v先生。
tepheno

我只是做了具有相同的目录名称测试和它的工作对我来说,也使用分离RF诉的方式。你确定你正在使用rm,而不是rmdir?详细(-v)是否提供了任何线索?另外,您的目录中是否有0字节文件?“ rm -r -f -v Wan \ Pisu \-\ New \ World /删除了'Wan Pisu-New World / test.test'删除目录:'Wan Pisu-New World'”
拉蒙·苏亚雷斯

不,它们只是文件夹。另外,当我在Windows上删除它时,它Error; 0x-----也无法删除。-v正在解释正在做的事情我知道rm --help
tepheno

0

尝试: rmdir --ignore-fail-on-non-empty *directory*


这什么也没做。
2015年

0

如果没有设置写权限,则无法删除目录。

在下面的示例中,即使我是目录的所有者,也无法删除它。一旦我添加了写权限,chmod一切都会成功。

DIR:/xieerqi
skolodya@ubuntu:$ ls -dl TESTDIR/                                              
dr-xr-xr-x 2 xieerqi xieerqi 4096 Jan 24 16:06 TESTDIR//

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              
rm: cannot remove ‘TESTDIR/one & two’: Permission denied
rm: cannot remove ‘TESTDIR/tom&jerry’: Permission denied
rm: cannot remove ‘TESTDIR/jekyl&hide’: Permission denied
rm: cannot remove ‘TESTDIR/pdfReader.sh’: Permission denied

DIR:/xieerqi
skolodya@ubuntu:$ chmod +w TESTDIR/                                            

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              

DIR:/xieerqi
skolodya@ubuntu:$ echo $?
0

0

我在Windows中有安装到Ubuntu VirtualBox虚拟机(VM)的文件夹。我无法从Windows文件管理器或使用rmdir或从VM内部删除它们rm -Rf *

TLDR:我终于可以使用在Git Bash(当然是Windows)中将其删除rm -Rf *

当我尝试在Windows文件管理器中删除时,它说我需要管理员特权才能删除文件夹。但是,即使是管理员,它仍然失败。

从Ubuntu VM(以前从未遇到过删除共享文件的问题)中,我得到了错误 cannot remove protocol error以及其他一些。

最后,在Windows的Git Bash中,我能够删除文件夹。我猜想Git Bash在文件夹上有某种锁。在Git Bash中,我的工作目录是我要删除的目录之一。我退出了它,然后使用删除了它,rm -Rf没有任何错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.