我是否需要担心“tail: unrecognized file system type 0xbeefdead”?

kwk*_*les 32 tail

我正在尝试使用tail -f -n 50 filename. 我从文件中获取信息就好了,但我总是收到此错误消息:

尾部:无法识别的文件系统类型 0xbeefdead

它发生在每个文件上。该0xbeefdead让我担心-它看起来像一个黑客标签。

$ tail --version
tail (GNU coreutils) 8.4
Run Code Online (Sandbox Code Playgroud)

Mar*_*ick 35

如果您在使用 StorNext 文件系统并且运行的是coreutils8.21 或更早版本时收到此警告,则无需担心;此警告消息是预期的。

GNUtail拥有关于许多文件系统类型的硬连线知识,并在遇到未知类型时发出警告。为的StorNext文件系统的支持加入到tailcoreutils2013年4月,在被释放coreutils8.22。提交在这里。如果你不能得到那个版本的coreutils,或希望修改和重新编译自己的源头,这里是从提交DIFF:

src/stat.c
@@ -399,6 +399,8 @@ enum
     return "selinux";
   case S_MAGIC_SMB: /* 0x517B remote */
     return "smb";
+  case S_MAGIC_SNFS: /* 0xBEEFDEAD remote */
+    return "snfs";
   case S_MAGIC_SOCKFS: /* 0x534F434B local */
     return "sockfs";
   case S_MAGIC_SQUASHFS: /* 0x73717368 local */
Run Code Online (Sandbox Code Playgroud)

  • @illuminÉ,确定文件系统类型的主要原因是“tail -f”操作:确定新数据是否已写入文件的最有效方法因文件系统而异。 (15认同)
  • 为什么像“tail”这样的用户空间程序需要与特定的文件系统兼容?我想我的意思是,没有它可以依赖的文件系统抽象吗? (11认同)
  • 如果可以,带有 `-f` 选项的 `tail` 使用 `inotify`。但是 `inotify` 只能监视由本地系统内核所做的活动引起的更改。因此,只有当文件参数位于它归类为“本地”文件系统的内容上时,`tail` 才会使用 `inotify`。 (9认同)
  • 最后遗漏的一条信息是,当您尝试在不支持 inotify 的文件系统上使用 inotify 时,内核没有给出任何错误的明确指示,因此这个神奇的数字 kludgefest 基本上是唯一安全的使用方法。 (7认同)