วิธีการทำซ้ำไฟล์


10

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

หากฉันคัดลอกไฟล์ทั้งหมดเหล่านี้ไปยังไดเรกทอรีเดียวมีเครื่องมือที่สามารถผ่านและจดจำไฟล์ที่ซ้ำกันและให้รายการหรือลบหนึ่งในรายการที่ซ้ำกันได้หรือไม่


1
เกี่ยวข้อง: unix.stackexchange.com/questions/3037/…
David Cary

คำตอบ:


3

สร้าง md5sum ของแต่ละไฟล์ทำซ้ำ md5sums แนะนำ (แต่ไม่รับประกัน) ไฟล์ที่ซ้ำกัน


1
พวกเขาทำอย่างยิ่ง "ขอแนะนำ" แต่ :) ..and ถ้าไฟล์ที่มีขนาดเดียวกันโอกาสของข้อเสนอแนะถูกต้องอยู่ในระดับสูงเป็นพิเศษ
วอร์เรน

2

คุณสามารถใช้dupemergeเพื่อเปลี่ยนไฟล์ที่เหมือนกันให้เป็นฮาร์ดลิงก์ได้ มันจะใช้เวลานานมากในชุดไฟล์ขนาดใหญ่ การแฮช SHA (หรือ MD5) ของไฟล์จะทำงานได้เร็วขึ้นเกือบแน่นอน แต่คุณจะต้องทำงานหนักมากขึ้นในการค้นหาข้อมูลที่ซ้ำกัน ความน่าจะเป็นของการปะทะกันโดยบังเอิญนั้นต่ำมากจนในความเป็นจริงคุณสามารถเพิกเฉยได้ (ในความเป็นจริงแล้วมีผลิตภัณฑ์ซ้ำซ้อนหลายตัวทำเช่นนี้แล้ว)

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


1
hardlinkเร็วมาก (ใช้เวลา 200 วินาทีสำหรับไฟล์ 1.2M, 320GB)
Marcel Waldvogel

1

ถ้าคุณมีความสามารถคุณสามารถตั้งค่าระบบไฟล์ซ้ำซ้อนและสำรองข้อมูลไว้ได้ สิ่งนี้จะไม่เพียง แต่ทำซ้ำไฟล์ทั้งหมด แต่ยังรวมถึงไฟล์ที่คล้ายกัน ตัวอย่างเช่นหากคุณมี JPEG ที่เหมือนกันในหลาย ๆ ที่ แต่ด้วยแท็ก EXIF ​​ที่แตกต่างกันในแต่ละเวอร์ชันระบบไฟล์ที่ซ้ำซ้อนจะจัดเก็บข้อมูลภาพเพียงครั้งเดียว

การทำซ้ำระบบไฟล์รวมถึง lessfs, ZFS และ SDFS


1
ฉันไม่สามารถพูดเกี่ยวกับการลดความซ้ำซ้อนของ SDFS หรือ lessfs ได้ แต่ Dedupe บน ZFS ไม่ทำงานเช่นนี้ มันตรวจสอบในระดับบล็อกดังนั้นไฟล์ที่เหมือนกันอาจถูกตั้งค่าสถานะไว้เพื่อลดความซ้ำซ้อน แต่ไฟล์ที่มีส่วนหัวที่แตกต่างกันจะไม่มีแนวโน้ม นอกจากนี้ไฟล์ที่มีขนาดเล็กกว่า ZFS recordsize ของคุณ (ค่าเริ่มต้นคือ 128KB) สามารถรวมเข้าด้วยกันเป็นบล็อคเดียวดังนั้นจึงอาจไม่ได้ประโยชน์จากการลดความซ้ำซ้อน
notpeter

ระบบไฟล์ซ้ำซ้อน (zfs หรือ btrfs) เท่านั้นประหยัดพื้นที่ในการสำรองโฮสต์ มันไม่ได้บันทึกปริมาณข้อมูลที่ถ่ายโอน เป็นความคิดที่จะคำนวณ hash สำหรับไฟล์และส่งไปยังโฮสต์สำรอง เมื่อมีข้อความระบุว่า "ฉันมีแล้ว" การสำรองข้อมูลสำหรับไฟล์นั้นจะเสร็จสิ้น สิ่งนี้ถูกนำไปใช้กับซอฟต์แวร์สำรองข้อมูลที่มีราคาแพงมาก ฉันไม่เคยได้ยินเกี่ยวกับมันในโอเพนซอร์ส แต่บางทีมันก็ถูกนำไปใช้งานในตอนนี้ใครจะรู้ :)
Znik

@Znik rsync --link-destเป็นเพื่อนของคุณหากคุณต้องการประหยัดในการอ่าน / โอนเช่นกัน คำแนะนำง่ายๆอยู่ที่นี่: netfuture.ch/2013/08/…
Marcel Waldvogel

มันทำงานโดยการทดสอบ inodes ที่กำหนดให้กับไฟล์ แต่เมื่อการขจัดข้อมูลซ้ำซ้อนถูกซ่อนไว้ตัวอย่างเช่นในระบบไฟล์ squashfs แล้ว rsync ไม่สามารถตรวจสอบสิ่งนี้และจะถ่ายโอนข้อมูลเดียวกันหลายครั้ง
Znik

0

เมื่อฉันทำสิ่งนี้ฉันได้เรียนรู้ว่าการมีส่วนร่วม / เวลาอย่างมีประสิทธิภาพมากขึ้นจริง ๆ เพียงแค่ผ่านไฟล์ด้วยตัวคุณเองในเวลาว่างของคุณในช่วงสองสามสัปดาห์ คุณสามารถบอกความแตกต่างระหว่างสิ่งต่าง ๆ ได้ดีกว่าคอมพิวเตอร์ของคุณ

ถ้าคุณไม่เห็นด้วยแล้วฉันขอแนะนำEasyDuplicateFinder อย่างที่ฉันได้กล่าวไว้ข้างต้นแม้ว่าจะใช้เวลานานประมาณหนึ่งวันสำหรับไฟล์ขนาด 5GB

และในบันทึกอื่น Crashplan ทำสิ่งที่คุณเคยทำมาก่อน แต่ในรูปแบบที่เป็นระเบียบมากขึ้นและไม่มีปัญหา


0

rsyncเป็นไปได้ก็ทะนงเครื่องที่คุณกำลังสำรองจะสนับสนุนมันคือการใช้สิ่งที่ต้องการ

หากคุณrsyncจาก A ถึง B จาก C ถึง B จาก D ถึง B ฯลฯรายการซ้ำที่แน่นอน (เช่นโดยชื่อไฟล์) จะถูกกำจัด (และซิงโครไนซ์ระหว่างเครื่องที่คุณสำรองข้อมูล)

หากคุณไม่ต้องการให้ซิงโครไนซ์กันทั้งหมดนี่ไม่ใช่วิธีที่ดีที่สุด


0

สำหรับไฟล์ภาพใช้findimagedupes มันบรรจุในเดเบียนด้วย


findimagedupes สำหรับรูปภาพหรือกราฟิกอาจถูกแปลงจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง photos (i home) เป็นเพียงตัวอย่างในคำถาม อาจเป็นไฟล์ขนาดใหญ่อื่น ๆ
Znik

0

ฮาร์ดลิงก์จะทำการขจัดข้อมูลซ้ำซ้อนหากไฟล์ทั้งหมดเหมือนกัน หากส่วนหัว (EXIF, ID3, ... ) หรือข้อมูลเมตา (เจ้าของ) แตกต่างกันพวกเขาจะไม่ถูกเชื่อมโยง

เมื่อคุณมีโอกาสใช้ระบบไฟล์ที่มีการรองรับการป้องกันการซ้ำซ้อนของบล็อก (ZFS, btrfs, …) ให้ใช้มันแทน ฉันชื่นชอบการสนับสนุนการลดความซ้ำซ้อนแบบออฟไลน์ (aka batch ) ของ btrfs ซึ่งรองรับการลดการซ้ำซ้อนระดับขอบเขตและไม่ใช้หน่วยความจำจำนวนมากอย่างต่อเนื่อง

การคัดลอกซ้ำยังมีข้อดีที่ผู้ใช้สามารถแก้ไขไฟล์ได้โดยไม่ต้องสังเกตเห็นการคัดลอกอื่น ๆ (ซึ่งอาจไม่สามารถใช้ได้ในกรณีของคุณ แต่เป็นเรื่องอื่น ๆ )

ดูhttps://btrfs.wiki.kernel.org/index.php/Deduplicationสำหรับการอภิปรายที่ยอดเยี่ยม

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