GNU/Linux >> Belajar Linux >  >> Linux

Mengapa hash md5 dari dua tarball dari file yang sama berbeda?

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.


Linux
  1. Cara mendapatkan ukuran file tar.gz dalam (MB) dengan python

  2. Mengapa kernel dipetakan ke ruang alamat yang sama dengan proses?

  3. Cara menggabungkan perintah 'tar' dengan 'find'

  1. Mengapa tautan keras tampaknya menempati ruang yang sama dengan aslinya?

  2. Apakah dua subdirektori dengan akar yang sama dijamin berada pada sistem file terpasang yang sama?

  3. Bagaimana cara menghitung jumlah byte dalam sebuah file, mengelompokkan byte yang sama?

  1. Cara mengatasi:stdin:tidak dalam format gzip

  2. Mengapa Skrip Bash Tidak Mengenal Alias?

  3. Linux – Uncompress Dan Unarchive File .tar.gz Menggunakan Cat, Tar Dan Gzip Pada Satu Baris Perintah?