我知道我可以将所有终端输出重定向到一个文件,但反过来也可以吗?
我可以在 Tmux 或其他地方打开一个终端窗口,实时接收来自文件的重定向输出吗?例如,如果另一个进程正在写入文件,这会被定向到终端窗口吗?
用例:REPL 被输出淹没
我希望这样做的原因是我想在 REPL(原来是 Erlang)中看到一些代码的输出,它有许多进程在后台创建终端输出内容,但这种输出非常快,我经常“丢失”我的 REPL 命令行,因为它被输出淹没了。所以我想让这些进程输出到一个文件,但在另一个终端中,我仍然想实时看到输出的内容。
答案1
tail -f
正是我所寻找的。
touch ~/foo
tail -f ~/foo
现在在另一个终端:
echo "hello" >> ~/foo
echo "there" >> ~/foo
效果很好。现在某些程序(例如 vim)将关闭并重新打开文件,tail -f
无法工作,因此当您从 vim 保存时,您将看不到添加的内容。在这种情况下,使用tail -F
,它明确跟在文件名而不是描述符后面。