나는 이 방법만 알고 있다:
tar --full-time -tvf /path/to/file.tar.gz
그러나 모든 아카이브를 tar 스캔하게 되므로 아카이브가 큰 경우 시간이 많이 소요됩니다. 내 질문은 *.7z 또는 *.rar와 같은 다른 형식과 같이 시작 부분만 스캔하고 특정 유형의 헤더만 스캔하는 방법이 있을까요?
답변1
가장 간단한 대답은 '아니요'입니다. "
7Zip
,RAR zip
,,외., 이중 기능 프로그램/파일 형식 모두. 개별 파일을 압축한 다음 압축 결과를 보관합니다. 이로 인해 파일의 일부 부분이아니요압축하지만 결과적으로 프로그램이 개별 파일에 액세스할 수 있습니다.
gzip
( .gz
부분적으로) 다릅니다. 단일 바이트 스트림만 압축합니다. 바이트 스트림은 에서 제공됩니다 tar
. bzip2
( .bz2
)는 다른 알고리즘을 사용하더라도 동일한 작업을 수행합니다. tar
아카이빙 프로그램 gzip
이자 압축 프로그램입니다. 아카이브에 완전히 도달하려면 스트림이 다음을 수행해야 합니다.첫 번째압축을 풀어보세요. 이는 경험을 통해서만 얻을 수 있다전체 파일. 그런 다음에만 tar
아카이브의 개별 부분에 액세스할 수 있습니다.
여기서 해당 단계가 표시되지 않는 이유는 해당 단계가 직접적으로 제공되는 것이 아니라 gzip
내장되어 있기 때문입니다.tar
그 자체tar
로 출력 스트림을 파이프하는 방법을 알고 있습니다 gzip
.
답변2
아니요, 불가능합니다. 보다위키피디아tar 파일 형식에 대한 설명입니다. 기본적으로는 교대로 반복되는 순서일 뿐입니다.파일 헤더그리고문서 내용. 처음에는 디렉터리가 없으며 각 파일의 모든 정보는 해당 디렉터리에 있습니다.파일 헤더.
헤더에는 파일 크기가 포함되므로 콘텐츠만 나열된 경우 독자는 다음 헤더의 시작 부분을 찾아 콘텐츠 전체 읽기를 건너뛸 수 있습니다. 그러나 tar 파일이 압축된 경우에는 압축되지 않은 적절한 바이트 수를 건너뛸 수 있도록 먼저 내용의 압축을 풀어야 하기 때문에 이는 불가능합니다.