다음 명령을 실행합니다.
tar -cf myArchive.tar myDirectory/
gzip myArchive.tar
그런 다음 해당 파일을 신뢰할 수 없는 여러 미디어에 복사한 다음 다음을 사용하여 압축을 풀었습니다.
tar -xzf myArchive.tar.gz
사실, 저는 타르볼을 압축했습니다. 이것이 어떤 식으로든 압축 해제된 콘텐츠의 무결성을 보장합니까, 아니면 적어도 CRC를 보장합니까?
답변1
tar
나중에 비교하기 위해 체크섬 자체를 기록하지 않습니다. gzip
을 보관 하면 tar
해당 기능을 사용할 수 있습니다.
tar
를 사용하십시오 compress
. -Z
아카이브를 생성할 때 이 플래그를 사용 하면 tar
해당 아카이브를 읽거나 쓸 때 프로그램이 사용됩니다. 맨페이지 compress
에서 :gzip
기준압축형식 설계에서는 일관성 검사가 허용되지 않습니다.
그러나 이 매개변수를 사용할 수 있습니다 -z
. 그런 다음 tar
읽고 쓰는 방식으로 보관합니다 gzip
. 그리고 gzip
crc 체크섬을 작성하세요. 체크섬을 표시하려면 다음 명령을 사용하십시오.
$ gzip -lv archive.tar.gz
method crc date time compressed uncompressed ratio uncompressed_name
defla 3f641c33 Sep 25 14:01 24270 122880 80.3% archive.tar
gzip
맨페이지 에서 :
처음 두 형식을 사용하는 경우(gzip 또는 zip은 다음을 의미합니다.), gunzip은 32비트 CRC를 확인합니다.
답변2
예gzip 파일 형식아카이브가 손상되었는지 감지하는 데 사용할 수 있는 CRC-32 체크섬이 포함되어 있습니다.
물론 체크섬을 사용하면 gzip을 사용할 수 있지만말하다아카이브가 손상된 것으로 확인되면 아카이브는 실제로 그 안에 있는 데이터를 복구하는 데 도움이 되는 어떤 작업도 수행하지 않습니다. 따라서 웹에서 방금 다운로드한 아카이브가 실제로 올바르게 다운로드되었는지 확인하는 등의 작업에 유용합니다.
신뢰할 수 없는 미디어를 통해 아카이브를 저장하거나 전송하는 것이 정말로 걱정된다면 다음과 같은 것을 사용하는 것이 좋습니다.기준이는 실제로 다음을 제공합니다.보정오류 감지를 제외하고. 물론 이 형식의 단점은 오류 수정에 필요한 중복으로 인해 필연적으로 파일 크기가 약간 증가한다는 것입니다.
답변3
tar
무결성 검사가 없습니다. 예:
$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b
tttttttttttttttttt
보세요, 아카이브의 내용이 a.tar
변경되어 b
파일의 내용이 완전히 다르지만 tar는 이를 알아차리지 못합니다. 이는 tar 형식이 두 가지 모두 있는 tar-1.28(최신)을 포함한 모든 tar에 해당됩니다 --format=gnu --format=posix
. pax
tar 판독기를 대체하는 이 명령 pax -r < a.tar
도 아카이브 변경 사항을 인식하지 못합니다.
답변4
PKZip 소프트웨어 패키지(win/dos)에는 손상된 아카이브에서 파일을 복구할 수 있는 PKZipFix라는 프로그램이 함께 제공됩니다. 저는 이전에 이 유틸리티를 사용한 적이 있으며 압축을 풀 수 없는 적당히 손상된 아카이브에서 파일을 복구할 수 있었습니다.