删除 .fuse_hidden* 文件

删除 .fuse_hidden* 文件

我的一个文件夹中有一个 .fuse_hidden* 文件,它不会消失。'lsof | grep fuse_hidden' 没有给出任何结果,所以我不确定操作系统认为哪个程序仍在打开它。有没有办法强制删除而不重新启动?这是在 Ubuntu 12.10 中,文件夹位于 NTFS 分区上。

谢谢。

答案1

我借用了这个答案:

隐藏文件由 fuse 高级用户空间库创建。Unix 支持对已删除文件的引用和访问,但大多数 fuse 应用程序并不处理这些。因此,fuse 用户空间库的行为与 NFS 相同,只要引用仍然存在,删除就是“软”的。文件不会真正被删除,而是被重命名为“.fuse_hidden...”,直到最后一个引用被释放。

这是 FUSE 用户空间库的一部分,并且是正确的行为。如果您的程序允许传递额外的 fuse 标志(或修改程序以执行此操作),则可以使用 FUSE 的 hard_remove 挂载选项。缺点是文件系统将不再有权访问在删除时打开的文件,因此它可能表现不佳。

一些文件系统会自行跟踪引用,并可能默认禁用软删除。此外,使用 FUSE 低级 API 的程序不会这样做。

答案2

sudo fuser -c <filename>

这应该会为您提供仍在访问您的文件的进程的进程 ID。

相关内容