ค้นหาไฟล์ที่ซ้ำกันและแทนที่ด้วย symlink
ฉันพยายามหาวิธีการตรวจสอบภายในไดเรกทอรีที่กำหนดสำหรับไฟล์ที่ซ้ำกัน (แม้จะมีชื่อที่แตกต่างกัน) และแทนที่ด้วย symlink ชี้ไปที่เกิดขึ้นครั้งแรก ฉันได้ลองแล้วfdupesแต่มันจะแสดงรายการที่ซ้ำกันเหล่านั้น นั่นคือบริบท: ฉันกำหนดธีมไอคอนตามความชอบของฉันและฉันพบว่ามีไอคอนมากมายแม้ว่าพวกเขาจะมีชื่อและสถานที่แตกต่างกันภายในโฟลเดอร์หลักของพวกเขาและใช้เพื่อจุดประสงค์ที่แตกต่างกัน ภาพ. เนื่องจากการใช้การปรับเปลี่ยนแบบเดียวกันยี่สิบหรือสามสิบครั้งนั้นซ้ำซ้อนเมื่อจำเป็นเพียงภาพเดียวฉันต้องการเก็บเพียงภาพเดียวและเชื่อมโยงภาพอื่น ๆ ทั้งหมด ตัวอย่างเช่นถ้าฉันทำงานfdupes -r ./ในไดเรกทอรีtestdirมันอาจกลับมาให้ฉันผลลัพธ์ต่อไปนี้: ./file1.png ./file2.png ./subdir1/anotherfile.png ./subdir1/subdir2/yetanotherfile.png เมื่อได้รับเอาต์พุตนี้ฉันต้องการเก็บเฉพาะไฟล์file1.pngลบส่วนที่เหลือทั้งหมดและแทนที่ด้วย symlink ที่ชี้ไปที่มันในขณะที่ยังคงชื่อไฟล์เดิมทั้งหมด ดังนั้นfile2.pngจะรักษาชื่อไว้ แต่จะกลายเป็นลิงก์ไปสู่file1.pngแทนที่จะเป็นข้อมูลซ้ำ ลิงก์เหล่านั้นไม่ควรชี้ไปที่พา ธ สัมบูรณ์ แต่ควรสัมพันธ์กับtestdirไดเร็กทอรีพาเรนต์ คือyetanotherfile.pngจะชี้ไปที่../../file1.pngไม่/home/testuser/.icons/testdir/file1.png ฉันสนใจทั้งในโซลูชันที่เกี่ยวข้องกับ GUI และ CLI ไม่จำเป็นต้องใช้fdupesฉันได้อ้างถึงเพราะเป็นเครื่องมือที่ฉันรู้ แต่ฉันเปิดรับโซลูชันที่ใช้เครื่องมืออื่นเช่นกัน ฉันค่อนข้างแน่ใจว่าสคริปต์ทุบตีในการจัดการทั้งหมดนี้ไม่ควรยากที่จะสร้าง แต่ฉันไม่เชี่ยวชาญพอที่จะหาวิธีเขียนด้วยตนเอง