【问题标题】:If i let a tail -f running on a file, does it prevent it from being deleted?如果我让 tail -f 在文件上运行,它会阻止它被删除吗?
【发布时间】:2018-10-27 17:51:45
【问题描述】:

操作系统是 AIX。我通过在文本文件上运行 tail -f 命令完成了多项测试。然后从另一个终端会话中,我尝试删除尾部文件。我一直成功删除它们并且没有发生任何问题,但我没有找到任何事实文档说 tail -f 不会锁定或阻止文件被删除。所以我想知道是否有这样的正式信息以及tail命令是否可以锁定或阻止文件被删除如何重现用例?

【问题讨论】:

  • 在 UNIX 上通常是这样:您可以从仍然打开句柄的文件系统中取消链接文件。当最后一个句柄关闭时,它们将被物理删除。但我想如果您需要事实文档,您需要挖掘出特定于 AIX(或者可能是它使用的文件系统)的内容。如果“Stackoverflow 这么说”足够好,请从这里开始:stackoverflow.com/questions/22246397/…
  • 为什么这个标签是linux?重新标记为AIX。
  • 不,在您取消链接文件后,它不会再出现在文件系统中。您可以再次创建一个具有相同名称的新文件。根据tail -f的实现方式,它会继续显示旧文件还是切换到新文件或退出,不确定。

标签: unix command locking aix tail


【解决方案1】:

tail -f 可以删除/移动文件,但删除后不会创建,必须手动创建,希望对你有帮助。

【讨论】:

    【解决方案2】:

    我怀疑 AIX 中的 unlink() 系统调用的行为与 Linux 非常相似,以至于 Linux man page 的第一段充分描述了它:

    unlink 从文件系统中删除一个名称。如果那个名字是最后一个 链接到文件并且没有进程打开文件 文件被删除 并且它正在使用的空间可供重复使用。

    当删除被跟踪(或写入)的大型日志文件时,磁盘空间不会被释放,直到所有这些进程都关闭文件或终止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 2015-05-04
      • 2017-09-17
      • 2014-05-21
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      相关资源
      最近更新 更多