나는 그들의 속성을 연구하기 위해 압축 파일의 일련의 재 압축을 수행하고자합니다.
처음에는 간단히 재 압축을 시도했습니다. .zip
루프에있는 파일 :
for f in $(seq 1 100)
do
zip $f.zip -9 -v $(($f-1)).zip
done
고정 된 것에서 시작 0.zip
파일, 나는이 줄을 다시 실행하면 처음 몇 파일을 제외한 모든 파일의 크기가 다르다는 것을 알았습니다. 조사가 끝나면 압축 파일의 타임 스탬프가 원인임을 알게되었습니다. 그런 다음 다시 압축하기 전에 타임 스탬프를 다시 설정합니다.
for f in $(seq 1 100)
do
touch $(($f-1)).zip -t 200101010101
zip $f.zip -9 -v $(($f-1)).zip
done
그리고 이번에는 압축을 사용하여 결정 론적 결과를 얻었습니다. zip
. 그러나, tar
와 더불어 gzip
알고리즘은 여전히 작동하지 않습니다. 내가 갈 때마다 :
for f in $(seq 1 100)
do
touch $(($f-1)).tar.gz -t 200101010101
tar cvfz $f.tar.gz $(($f-1)).tar.gz
done
나는 다른 파일 크기를 얻는다. 4.tar.gz
...까지 100.tar.gz
.
왜 그런 일이 일어나고, 그런 일이 일어나지 않도록하려면 어떻게해야합니까?
mtime
그러나 그것은 도움이되지 못했습니다. 내 버전의 타르에서 결정 론적 아카이브를 얻는 것이 불가능할 수도 있다는 것을 암시하고 있습니까? 아니면이 문제를 무시할 수있는 옵션이 있습니까?