การเก็บถาวรไฟล์โดยไม่มีการประทับเวลา


4

ฉันต้องการเก็บถาวรไฟล์บางไฟล์อย่างไม่แน่นอนเพื่อให้ได้ไฟล์เก็บถาวรเดียวกันถ้าเนื้อหาของไฟล์เหมือนกัน ฉันต้องการสิ่งนี้สำหรับการทดสอบความเท่าเทียมกันของไฟล์เก็บถาวรในภายหลัง

อย่างไรก็ตาม tar มีข้อมูลเวลาประทับดังนั้นฉันจึงได้รับไฟล์เก็บถาวรที่แตกต่างกันแม้ว่าเนื้อหาของไฟล์จะเหมือนกัน

ฉันจะสร้างไฟล์เก็บถาวร (ด้วย tar, zip หรืออย่างอื่น) ที่ไม่มีข้อมูลการประทับเวลาได้อย่างไร

หมายเหตุ: ฉันรู้ว่าแม้ว่าทั้งสองไฟล์ tar แตกต่างกันผมสามารถละเว้นการประทับเวลาของพวกเขาและเปรียบเทียบเฉพาะเนื้อหาของพวกเขาด้วยเครื่องมือเช่นหรือtar --diff tarsumอย่างไรก็ตามฉันไม่ได้รับอนุญาตให้ใช้เครื่องมือภายนอกอื่น ๆ เพื่อเปรียบเทียบ (เนื่องจากการตั้งค่าของฉัน) ฉันสามารถทดสอบไฟล์เก็บถาวรสองไฟล์เพื่อความเท่าเทียมกันที่แน่นอน

หมายเหตุ: ฉันทราบว่าฉันสามารถตั้งค่าการประทับเวลาของไฟล์ทั้งหมดเป็นค่าที่กำหนดก่อนที่จะเก็บถาวรไฟล์ดังนั้นการประทับเวลาของไฟล์จะเหมือนกัน อย่างไรก็ตามมีไฟล์จำนวนมากและฉันไม่ต้องการทำเช่นนี้ ฉันต้องการเก็บถาวรไฟล์เหล่านี้โดยไม่มีข้อมูลการประทับเวลา

ตัวอย่าง:

$ mkdir copy1
$ touch copy1/file1
$ touch copy1/file2

$ sleep 60
$ mkdir copy2
$ touch copy2/file1
$ touch copy2/file2

$ ls -l copy1
total 0
-rw-r--r--  1 david  wheel  0 Oct 27 00:59 file1
-rw-r--r--  1 david  wheel  0 Oct 27 00:59 file2

$ ls -l copy2
total 0
-rw-r--r--  1 david  wheel  0 Oct 27 01:00 file1
-rw-r--r--  1 david  wheel  0 Oct 27 01:00 file2

# the content of those files is the same; they only differ by the their timestamp    

$ (cd copy1; tar -cvf ../copy1.tar .)
$ (cd copy2; tar -cvf ../copy2.tar .)

$ tar -tvf copy1.tar
drwxr-xr-x  0 david  wheel       0 Oct 27 00:59 ./
-rw-r--r--  0 david  wheel       0 Oct 27 00:59 ./file1
-rw-r--r--  0 david  wheel       0 Oct 27 00:59 ./file2

$ tar -tvf copy2.tar
drwxr-xr-x  0 david  wheel       0 Oct 27 01:00 ./
-rw-r--r--  0 david  wheel       0 Oct 27 01:00 ./file1
-rw-r--r--  0 david  wheel       0 Oct 27 01:00 ./file2

$ diff copy1.tar copy2.tar 
Binary files copy1.tar and copy2.tar differ

ฉันพยายามzip -Xแทนtarแต่ได้ผลลัพธ์เดียวกัน

คำตอบ:


0

แม้ว่าคุณจะปิดใช้งานการประทับเวลาอย่างใดก็ตามฉันก็จะไม่แน่ใจ 100% ว่ามันจะช่วยคุณได้ในทุกกรณี Infact ลำดับของไฟล์สามารถเปลี่ยนผลลัพธ์ (เช่น "tar cf a.tar file1 file2" แตกต่างจาก "tar cf b.tar file2 file1" แต่ตามข้อกำหนดของคุณเนื้อหาจะเหมือนกันและลำดับอาจขึ้นอยู่กับระบบไฟล์ )

ฉันขอแนะนำให้คุณทำบางสิ่งที่ชัดเจนกว่าการเปรียบเทียบไฟล์อย่างที่คุณพูด (md5sum เป็นต้น)

หากคุณต้องการเพียงไฟล์โง่เปรียบเทียบกับการทำงานฉันอาจแนะนำเปลือกธรรมดาที่ติดไฟล์ที่มีส่วนหัวชื่อไฟล์เช่น:

for i in file1 file2; do echo "$i"; cat $i; done; 

แน่นอนคุณสามารถ gzip ถ้าคุณต้องการ และระวังที่จะรักษาลำดับ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.