Eu tenho, por exemplo, um comando longo e detalhado tar cvf /backup/backup.tar
que gera muito texto na tela *. Não quero necessariamente ver toda a saída o tempo todo. Eu gostaria de parar a saída de texto, fazer outras coisas, depois voltar a ela e "retomar" para ver quanto tempo está no processo de backup. Eu esperava que ele se comportasse como
/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 interrompe a saída para a tela (e Ctrl+q retoma a saída para a tela), enquanto Ctrl+z suspende o processo e volto ao prompt do PS1. Minha pergunta é: Ctrl+s mantém o comando em execução?
Durante o tar
comando mencionado, eu destacaria o último arquivo TARred, deixaria por alguns minutos, Ctrl + q, e os próximos arquivos pareciam estar no mesmo diretório, ou pelo menos em um diretório relativamente próximo.
*Estou usando o Putty no Windows, então se o comportamento for diferente entre ele e um terminal padrão no Linux/Unix, peço desculpas.
Sim, até o ponto em que os buffers do sistema são preenchidos e o processo começa a bloquear para poder gravar no terminal. Portanto, não funcionará indefinidamente. Além disso, você não poderá executar mais nada no mesmo terminal, pois a saída está bloqueada.
Para sair do programa mantendo a possibilidade de voltar, as opções são:
screen
outmux
multiplexar várias "janelas" dentro do mesmo terminaltar cvf ... > /tmp/tar.out &
etail /tmp/tar.out