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를 눌러 몇 분 동안 그대로 두면 다음 파일이 동일한 디렉터리 또는 적어도 상대적으로 가까운 디렉터리에 있는 것처럼 보입니다.
*저는 Windows에서 Putty를 사용하고 있는데, Linux/Unix의 표준 터미널과 다르게 동작한다면 사과드립니다.
답변1
내 질문은 Ctrl+s가 명령을 계속 실행하는 것입니까?
예, 시스템 버퍼가 가득 차고 프로세스가 차단되기 전까지는 터미널에 쓸 수 없습니다. 따라서 무한정 실행되지는 않습니다. 또한 출력이 차단되므로 동일한 터미널에서 다른 작업을 실행할 수 없습니다.
프로그램에 복귀할 수 있는 상태에서 프로그램을 종료하려면 다음을 선택하세요.
- 측면에서 다른 터미널 실행(다른 Putty, 다른 SSH 연결)
- 동일한 터미널 내에서 여러 "창"을 실행
screen
하거나 재사용합니다.tmux
- 출력을 파일로 리디렉션하고 백그라운드에서 명령을 실행한 후 필요할 때 파일을 봅니다
tar cvf ... > /tmp/tar.out &
.tail /tmp/tar.out