Untuk MacOS:
Di man tar
kita bisa melihat --options
bagian dan di sana kita akan menemukan !timestamp
opsi, yang akan mengecualikan stempel waktu dari arsip gzip kami. Penggunaan:
tar --options '!timestamp' -cvzf archive.tgz filename
Ini akan menghasilkan jumlah md5 yang sama untuk file yang sama dengan nama yang sama
tar czf outfile infiles
setara dengan
tar cf - infiles | gzip > outfile
Alasan perbedaan file adalah karena gzip
memasukkan nama file input dan waktu modifikasinya ke dalam file terkompresi. Saat input berupa pipa, ia menggunakan string kosong sebagai nama file dan waktu saat ini sebagai waktu modifikasi.
Tetapi juga memiliki --no-name
opsi, yang memberitahukannya untuk tidak memasukkan nama dan stempel waktu ke dalam file. Jadi jika Anda menulis perintah yang diperluas secara eksplisit, alih-alih menggunakan -z
opsi untuk tar
, Anda dapat menggunakan opsi ini.
tar cf - testfile | gzip --no-name > a.tar.gz
tar cf - testfile | gzip --no-name > b.tar.gz
Saya mengujinya di OS X 10.6.8 dan berhasil.