我在 encfs 容器中有一个文件夹 foo(来源:/local/home/me/Documents 挂载点:/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: -
当退出代码不同于 0 时,我会使用“echo $?”明确表示这一点。
编辑:我刚刚重启了机器,以防在安装了一些更新后我错过了这个。结果还是一样。即使重新安装也无济于事。有没有针对 encfs 的 fsck?
编辑:我发现了另一个可能有用的信息:容器本身是通过 Drobox 同步的。我识别了相应的文件夹(具有加密文件名),并在其中找到了一个.dropbox.attr
文件,其行为相同,这实际上就是我认为已安装文件夹不可移动的原因。我禁用了 Dropbox 客户端,卸载了容器,但仍然无法删除,甚至无法重命名它!此外,chown 不起作用。除了 chmod 之外的所有操作都给我一个权限被拒绝。即使使用 root 也没有成功。该文件是一个文本文件,我可以打开它:
{"mac": {"com.apple.FinderInfo": {"data": "AAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}}}
甚至可以改变内容并保存。
答案1
请再三检查您是否拥有权限。
我无法删除它的原因是,该文件夹是通过 NFS 挂载的,所以我的本地根无法执行任何操作。包含该.dropbox.attr
文件的文件夹只有读取和执行权限,因此rm .dropbox.attr
无法以普通用户身份运行。