Ad esempio, ho un tar cvf /backup/backup.tar
lungo e dettagliato comando che restituisce molto testo sullo schermo*. Non voglio necessariamente vedere tutto l'output tutto il tempo. Vorrei interrompere l'output del testo, fare altre cose, quindi tornare ad esso e "riprendere" per vedere a che punto è il processo di backup. Mi aspettavo che si comportasse come
/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 l'output sullo schermo (e Ctrl+q riprende l'output sullo schermo), mentre Ctrl+z sospende il processo e torno a un prompt PS1. La mia domanda è:Ctrl+s mantiene il comando in esecuzione?
Durante il suddetto tar
comando, vorrei evidenziare l'ultimo file TARred lasciarlo riposare per alcuni minuti, Ctrl+q, e i file successivi sembravano essere nella stessa directory, o almeno in una directory relativamente vicina.
*Sto usando Putty su Windows, quindi se il comportamento è diverso tra quello e un terminale standard su Linux/Unix mi scuso.
Risposta accettata:
La mia domanda è:Ctrl+s mantiene il comando in esecuzione?
Sì, fino al punto in cui i buffer di sistema si riempiono e il processo inizia a bloccarsi per poter scrivere sul terminale. Quindi, non funzionerà all'infinito. Inoltre non sarai in grado di eseguire nient'altro nello stesso terminale poiché l'output è bloccato.
Per uscire dal programma mantenendo comunque la possibilità di tornare indietro, le scelte sono:
- Esegui un altro terminale sul lato (un altro Putty, un'altra connessione SSH)
- Esegui
screen
otmux
multiplexing di più “finestre” all'interno dello stesso terminale - Reindirizza l'output su un file, esegui il comando in background e poi dai un'occhiata al file quando vuoi:
tar cvf ... > /tmp/tar.out &
etail /tmp/tar.out