【问题标题】:linux command "tail -f filename" doesnt worklinux命令“tail -f filename”不起作用
【发布时间】:2015-12-26 10:24:28
【问题描述】:

我使用tail -f filename 监控文本文件,并使用vi 编辑器在文件末尾添加一行。

但保存文件后,我在“tail -f”正在监控的终端上没有看到更新。

有什么问题? vi 编辑器有缓冲区吗?

【问题讨论】:

  • 你用 vi 添加了多少文本?可能不是 vi,可能是操作系统缓冲。
  • 尝试将 echo 或 cat 文本改为末尾。 Vim 实际上写入了一个新文件。

标签: linux file operating-system tail


【解决方案1】:

vi/vim 复制文件到一个临时文件,vis:

[root@mg ~]# lsof | grep temp3 tail 29146 root 3r REG 253,0 2474 2228230 /root/temp3 vim 29260 root 4u REG 253,0 12288 2228273 /root/.temp3.swp

因此,您要跟踪的文件在此处列出,并且 .temp3.swp vim 也已创建。

保存文件后,vim 会删除原始文件并将 .temp3.swp 文件重命名为 temp3.swp

lsof 将显示您正在跟踪已删除的文件:

[root@mg ~]# lsof | grep temp3 tail 29146 root 3r REG 253,0 2474 2228230 /root/temp3~ (deleted)

stat 将显示新文件具有上述 .temp3.swp 文件的 inode:

[root@mg ~]# stat temp3 File: 'temp3' Size: 2482 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 2228273 Links: 1

【讨论】:

    猜你喜欢
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多