如果“rm -rf”不起作用,但“ls -a”没有显示文件怎么办?

mat*_*ath 5 linux rm

我在 encfs 容器中有一个文件夹 foo(来源:/local/home/me/Documents mountpoint:/u/me/Documents),我无法删除它。

> pwd
/u/me/Documents

> mount
[..]
encfs on /local/home/me/Documents type fuse.encfs (rw,nosuid,nodev,default_permissions,user=me)

> ls -la foo
drwxr-xr-x  2 me mygrp 4096 Nov  6 10:35 ./
drwx------ 31 me mygrp 4096 Nov  6 10:47 ../

> mv foo bar

> ls -lad bar
drwxr-xr-x 2 me mygrp 4096 Nov  6 10:35 bar/

> rm -rf bar
rm: cannot remove ‘bar’: Directory not empty

> lsof bar

> echo $?
1

> mv bar /tmp
mv: inter-device move failed: ‘bar’ to ‘/tmp/bar’; unable to remove target: Is a directory

> echo "Arghhhhghgh"
Arghhhhghgh

> uname -a
Linux mybox 3.8.0-33-generic #48-Ubuntu SMP Wed Oct 23 09:16:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

> stat bar
  File: ‘bar’
  Size: 4096        Blocks: 8          IO Block: 1048576 directory
Device: 1ch/28d Inode: 81005508    Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 4711/    me)   Gid: (  311/   mygrp)
Access: 2013-11-06 10:56:47.594878110 +0100
Modify: 2013-11-06 10:35:10.000000000 +0100
Change: 2013-11-06 10:56:47.591878043 +0100
 Birth: -
Run Code Online (Sandbox Code Playgroud)

当退出代码与 0 不同时,我用“echo $?”明确表示。

编辑:我刚刚重新启动了盒子,以防在安装了一些更新后我错过了。结果保持不变。即使重新安装也无济于事。encfs 有一些 fsck 吗?

编辑:我发现了另一个可能有用的信息:容器本身是通过 Drobox 同步的。我确定了相应的文件夹(它有一个加密的文件名),并在一个.dropbox.attr文件中找到了一个行为相同的文件,这实际上是我认为安装的文件夹不可移动的原因。我禁用了 Dropbox 客户端,卸载了容器,但仍然无法删除,甚至无法重命名!chown 也没有用。除了 chmod 之外的所有内容都拒绝了我的许可。即使有了root我也没有成功。该文件是一个文本文件,我能够打开它:

{"mac": {"com.apple.FinderInfo": {"data": "AAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}}}
Run Code Online (Sandbox Code Playgroud)

甚至更改内容并保存它。

mat*_*ath 6

请仔细检查您拥有的权限。

我无法删除它的原因是,该文件夹是通过 NFS 挂载的,所以我的本地根无法执行任何操作。包含该.dropbox.attr文件的文件夹只有读取和可执行权限,因此rm .dropbox.attr无法以普通用户身份工作。