Tengo, por ejemplo, un tar cvf /backup/backup.tar
largo y verboso. comando que muestra una gran cantidad de texto en la pantalla*. No necesariamente quiero ver todo el resultado todo el tiempo. Me gustaría detener la salida de texto, hacer otras cosas, luego volver y "reanudar" para ver qué tan avanzado está en el proceso de copia de seguridad. Esperaba que se comportara 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 detiene la salida a la pantalla (y Ctrl+q reanuda la salida a la pantalla), mientras que Ctrl+z suspende el proceso y vuelvo a la indicación de PS1. Mi pregunta es, ¿Ctrl+s mantiene el comando en ejecución?
Durante el mencionado tar
comando, resaltaría el último archivo TARred, lo dejaría reposar durante unos minutos, Ctrl+q, y los siguientes archivos parecían estar en el mismo directorio, o al menos en un directorio relativamente cercano.
*Estoy usando Putty en Windows, así que si el comportamiento es diferente entre eso y una terminal estándar en Linux/Unix, pido disculpas.
Respuesta aceptada:
Mi pregunta es, ¿Ctrl+s mantiene el comando en ejecución?
Sí, hasta el punto en que los búferes del sistema se llenan y el proceso comienza a bloquearse para poder escribir en la terminal. Por lo tanto, no se ejecutará indefinidamente. Además, no podrá ejecutar nada más en la misma terminal ya que la salida está bloqueada.
Para salir del programa y mantener la posibilidad de volver, las opciones son:
- Ejecute otra terminal al costado (otra Putty, otra conexión SSH)
- Ejecutar
screen
otmux
para multiplexar múltiples "ventanas" dentro de la misma terminal - Redireccione la salida a un archivo, ejecute el comando en segundo plano y luego eche un vistazo al archivo cuando desee:
tar cvf ... > /tmp/tar.out &
ytail /tmp/tar.out