我使用tail -f filename
监控文本文件,并使用vi
编辑器在文件末尾添加一行。
但是在保存文件后,我没有在终端上看到“tail -f
”正在监控的更新。
有什么问题? vi
编辑器有缓冲区吗?
答案 0 :(得分:2)
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