J'ai, par exemple, un tar cvf /backup/backup.tar
long et verbeux commande qui affiche beaucoup de texte à l'écran*. Je ne veux pas nécessairement voir toutes les sorties tout le temps. J'aimerais arrêter la sortie de texte, faire d'autres choses, puis y revenir et "reprendre" pour voir où en est le processus de sauvegarde. Je m'attendais à ce qu'il se comporte comme
/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 arrête la sortie à l'écran (et Ctrl + q reprend la sortie à l'écran), tandis que Ctrl + z suspend le processus et je reviens à une invite PS1. Ma question est la suivante :est-ce que Ctrl+s maintient la commande en cours d'exécution ?
Pendant le tar
susmentionné commande, je mettrais en surbrillance le dernier fichier TARred le laisser reposer pendant quelques minutes, Ctrl + q, et les fichiers suivants semblaient être dans le même répertoire, ou du moins dans un répertoire relativement proche.
*J'utilise Putty sous Windows, donc si le comportement est différent entre celui-ci et un terminal standard sous Linux/Unix, je m'excuse.
Réponse acceptée :
Ma question est la suivante :est-ce que Ctrl+s maintient la commande en cours d'exécution ?
Oui, jusqu'au point où les tampons système se remplissent et le processus commence à se bloquer pour pouvoir écrire sur le terminal. Ainsi, il ne fonctionnera pas indéfiniment. De plus, vous ne pourrez rien exécuter d'autre dans le même terminal puisque la sortie est bloquée.
Pour quitter le programme tout en gardant la possibilité d'y revenir, les choix sont :
- Exécutez un autre terminal sur le côté (un autre Putty, une autre connexion SSH)
- Exécuter
screen
outmux
pour multiplexer plusieurs "fenêtres" dans le même terminal - Redirigez la sortie vers un fichier, exécutez la commande en arrière-plan, puis consultez le fichier lorsque vous souhaitez :
tar cvf ... > /tmp/tar.out &
ettail /tmp/tar.out