Score:1

พารามิเตอร์ -W ของ tar ทำอะไรได้บ้าง

ธง tr

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

-W, --ตรวจสอบ
ตรวจสอบไฟล์เก็บถาวรหลังจากเขียน

ฉันทดสอบสิ่งนี้และดูเหมือนว่าจะทำบางสิ่ง:

$tar cvWf tartest.tar tartest/
ทาร์เทส/
ทาร์เทส/dir1/
ทาร์เทส/dir1/บาร์
ทาร์เทส/dir2/
ทาร์เทส/dir2/foobar
ตรวจสอบ tartest/
ตรวจสอบ tartest/dir1/
ตรวจสอบ tartest/dir1/bar
ตรวจสอบ tartest/dir2/
ตรวจสอบ tartest/dir2/foobar

แต่สิ่งที่ไม่แน่นอน น้ำมันดิน ตรวจสอบที่นี่? การปรากฏตัวของไฟล์? ขนาดไฟล์? ผลรวมของ MD5?

Score:1
ธง cn

สิ่งนี้ใช้เวลาขุดเพื่อคิดออก ในไฟล์ src/compare.c ใน Git repo สำหรับ tarเราพบฟังก์ชันชื่อ Verify_volume (ในบรรทัดที่ 527 ในขณะที่เขียน) ซึ่งมีความคิดเห็นดังต่อไปนี้

การตรวจสอบไฟล์เก็บถาวรมีไว้เพื่อตรวจสอบว่าสื่อทางกายภาพได้รับอย่างถูกต้องหรือไม่ ดังนั้นพยายามกำจัดการบัฟเฟอร์ในหน่วยความจำอันชาญฉลาดที่เกี่ยวข้องกับสื่อเฉพาะนี้ ตัวอย่างเช่น บน Linux ฟล็อปปี้ไดรฟ์จะไม่สามารถเข้าถึงได้สำหรับการตรวจสอบทั้งหมด

นั่นอธิบายถึงสิ่งที่พยายามทำ แต่เกี่ยวกับ อย่างไร มันทำได้ เราต้องดูโค้ดสำหรับฟังก์ชัน มันเริ่มต้นด้วยการเปรียบเทียบส่วนหัวเพื่อให้แน่ใจว่าตรงกัน และถ้าตรงกัน มันจะเรียกใช้ฟังก์ชัน diff_archive (บรรทัดที่ 461 ณ เวลาที่เขียน) ซึ่งจะไปทีละรายการภายในไฟล์เก็บถาวร และเมื่อพบไฟล์* ก็จะเรียกใช้ฟังก์ชัน diff_file (สาย 187). เริ่มต้นด้วยการตรวจสอบสิ่งง่ายๆ เช่น ประเภทและขนาดไฟล์ (และอื่น ๆ ) หากทั้งหมดนั้นถูกต้อง ระบบจะไป (สำหรับไฟล์ปกติ) และตรวจสอบแต่ละบล็อกของไฟล์ (ในไฟล์ read_and_process ฟังก์ชัน บรรทัดที่ 120) สำหรับ ไฟล์กระจัดกระจายมันเรียก sparse_diff_file (สาย 698) ค่ะ src/sparse.คซึ่งตรวจสอบแต่ละภูมิภาคของไฟล์** โดยใช้ไฟล์ check_sparse_region ฟังก์ชัน (บรรทัดที่ 607) เข้ามาด้วย src/sparse.ค.

*ทำอย่างอื่นสำหรับข้อมูลที่เก็บถาวรประเภทอื่นๆ เช่น ไดเร็กทอรี

**ตรวจสอบแต่ละภูมิภาคด้วยวิธีเดียวกันกับการตรวจสอบไฟล์ปกติทั้งหมด (ไม่กระจัดกระจาย)

Wayne_Yux avatar
tr flag
โอ้ ว้าว มันทำได้มากกว่าที่ฉันคาดไว้มาก - เยี่ยมมาก! ขอบคุณมาก!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา