2개의 파일을 읽으려면 왜 테이프를 3번 읽어야 합니까?

2개의 파일을 읽으려면 왜 테이프를 3번 읽어야 합니까?

두 개의 tar 아카이브를 테이프에 쓴 후:

$ mt -f /dev/st0 rewind
$ tar cvf /dev/nst0 first
$ tar cvf /dev/nst0 second

테이프를 왜 읽어야 하나요?읽은 횟수파일?

$ mt -f /dev/st0 rewind

$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (41010000):
 BOT ONLINE IM_REP_EN

$ tar tvf /dev/nst0
drwxrwxr-x oskar/oskar       0 2017-03-23 11:35 first/

$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=10, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (1010000):
 ONLINE IM_REP_EN

$ tar tvf /dev/nst0
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=1, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (81010000):
 EOF ONLINE IM_REP_EN

$ tar tvf /dev/nst0
drwxrwxr-x oskar/oskar       0 2017-03-23 11:37 second/

$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=1, block number=3, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (1010000):
 ONLINE IM_REP_EN

답변1

첫 번째 파일이 끝나면 tar tvf테이프는 첫 번째 파일의 마지막 블록에 남습니다. 두 번째 파일은 tar tvf이를 다시 읽고 불평하지만 그렇게 하면 테이프가 두 번째 파일의 첫 번째 블록에 남게 되므로 세 번째 파일이 tar tvf작동합니다.

mt테이프에 있는 여러 파일로 작업하는 경우 다음을 실행하기 전에 파일 간에 이동 해야 합니다 tar.

mt -f /dev/st0 rewind
tar tvf /dev/nst0
mt -f /dev/nst0 fsf 1
tar tvf /dev/nst0

관련 정보