我是否需要担心“ tail:无法识别的文件系统类型0xbeefdead”?


32

我正在尝试使用跟随常规文本文件tail -f -n 50 filename。我总是从文件中获取信息,除了我总是会收到以下错误消息:

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

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

$ tail --version
tail (GNU coreutils) 8.4

3
应该0xdeadbeef不是吗?:P
devnull 2014年

1
近距离投票已撤回。
slm

1
可能很明显,但是0xDEADBEEF通常用于指示未初始化的字节等。BEEFDEAD可能是对此的明智选择。 en.wikipedia.org/wiki/Hexspeak(搜索DEADBEEF)
user426724

@goldilocks:这是一个很好的故事,但毫无疑问。另外,固定您的大写锁定键。
Ben Voigt 2014年

3
@BenVoigt Caps放在一边,他提出了一个有效的观点。问题很明确:他只是问他的牛肉是否正常。
纳文2014年

Answers:


34

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

GNU tail具有许多文件系统类型的固定知识,并在遇到未知类型时发出警告。为的StorNext文件系统的支持加入到tailcoreutils2013年4月,在被释放coreutils8.22。提交在这里。如果您无法获得该版本的coreutils,或者希望自己编辑并重新编译源代码,则这是该提交的区别:

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 */

11
为什么像这样的用户空间程序tail需要与特定的文件系统兼容?我想我的意思是,没有可以依赖的文件系统抽象吗?

15
@illuminÉ,确定文件系统类型的主要原因是“ tail -f”操作:确定是否将新数据写入文件的最有效方法因一个文件系统而异。
标记

9
tail如果可以的话,-f使用该选项inotify。但是inotify只能监视由本地系统内核完成的活动引起的更改。因此,仅当file参数位于分类为“本地”文件系统的文件参数上时才tail使用inotify
Mark Plotnick

7
最后遗漏的信息是,当您尝试在不支持inotify的文件系统上使用inotify时,内核没有明确指出任何错误,因此,这个神奇的数字kludgefest基本上是使用它的唯一安全方法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.