如何删除.fuse_hidden *文件?

我有一个小型的Linux服务器(Debian Squeeze),它运行一个Samba服务器,它被configuration为与一些Windows机器共享一些文件夹。 当试图从Windows中删除一个目录时,我收到“无法删除文件夹”的错误。

我试图从Linux的控制台删除目录我有一个类似的错误:

# rm dir-name -rf rm: cannot remove `dir-name': Directory not empty 

我列出了目录的内容,并find一个名为.fuse_hidden的文件,后面跟着一个hex数(000bd8c100000185)。

 # ls -la dir-name -rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000185 

我试图删除.fuse_hidden文件,但立即创build一个新的文件(注意hex数字的变化)。

 # rm dir-name/.fuse_hidden000bd8c100000185 # ls -la dir-name -rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000186 

我也尝试使用午夜指挥官删除文件没有成功。

到目前为止,我发现的其他解决scheme都涉及到GUI,而我只有控制台。

任何build议表示赞赏。

    这与删除另一个系统在NFS装载上打开的文件时发生的情况类似。 问题是文件已经从文件系统中删除,而其“链接计数”> 1,这意味着其他进程仍然保持打开状态。

    • login到文件所在的系统。 (无networking安装)
    • 执行lsof dir-name/.fuse_hidden000bd8c100000185以查明哪些进程正在保持打开的文件句柄。
    • 如果有意义的话终止这些进程,或者找出可以执行哪些步骤以“优雅地”释放打开的文件句柄而不终止进程。

    通常,当删除本地文件系统上的另一个进程已打开的文件时,OS将符合您的请求并将其从目录树中删除,但操作系统仍然认为树指向的inode仍在使用中。 每打开一个文件,其“链接计数”就会增加一个,只有当该链接计数达到零时才真正释放该空间。

    当遇到这种性质的问题时,这意味着操作系统无论出于何种原因决定从目录树中删除该文件:通常是因为它有理由相信它仍然需要被无法访问的东西访问利用直接inode号码。 它可能最初似乎符合,但在幕后操作系统重命名它有一个隐藏的点前缀,以便仍然可以通过某种forms的文件系统path寻址访问。 当链接数量达到零时,该空间仍然会被释放,但是该对象将保留在目录中,直到链接消失。

    我有同样的问题。 这是由Python程序pipe理照片造成的。 停止之后,文件“.fuse …”立即消失。