例如,我有一个长时间运行且冗长的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,下一个文件似乎位于相同的dir中,或者至少在一个相对接近的目录中。
*我在Windows上使用Putty,所以如果行为与Linux/Unix上的标准终端不同,我很抱歉。
发布于 2018-03-29 21:32:24
我的问题是,Ctrl+s是否使命令继续运行?
是的,直到系统缓冲区填满为止,进程开始阻塞,以便能够写入终端。所以,它不会无限期地运行。此外,由于输出被阻塞,您将无法在同一个终端上运行其他任何东西。
若要在保持返回的可能性的同时从程序中切换,选择如下:
screen或tmux以在同一终端内复用多个“窗口”tar cvf ... > /tmp/tar.out &和tail /tmp/tar.outhttps://unix.stackexchange.com/questions/434384
复制相似问题