例如,我有一个长时间运行且冗长tar cvf /backup/backup.tar
的命令,该命令将大量文本输出到屏幕*。我不一定想一直看到所有的输出。我想停止文本输出,做其他事情,然后回到它并“恢复”以查看它在备份过程中的进展情况。我希望它表现得像
/files/big_file_1
/files/big_file_2
/files/big_file_3
# Ctrl+s
# Do other stuff
# Ctrl+q , notice big jump in progress
/home/user/.bash_history
/home/user/small_file_1
/home/user/small_file_2
/home/user/small_file_3
...
Ctrl+s 停止输出到屏幕(并且 Ctrl+q 恢复输出到屏幕),而 Ctrl+z 暂停该过程,我回到 PS1 提示符。我的问题是,Ctrl+s 是否保持命令运行?
在上述tar
命令中,我会突出显示最后一个文件 TARred 让它静置几分钟,Ctrl+q,然后下一个文件似乎在同一个目录中,或者至少在一个相对接近的目录中。
*我在 Windows 上使用 Putty,所以如果它与 Linux/Unix 上的标准终端之间的行为不同,我深表歉意。
是的,直到系统缓冲区填满,进程开始阻塞才能写入终端。所以,它不会无限期地运行。另外,由于输出被阻止,您将无法在同一终端中运行任何其他内容。
要退出该计划,同时仍然可以返回,可以选择:
screen
或tmux
多路复用多个“窗口”tar cvf ... > /tmp/tar.out &
和tail /tmp/tar.out