เป็นข้อกำหนดทั่วไปในการค้นหาและแทนที่ไฟล์ที่ซ้ำกันสำหรับผู้ใช้คอมพิวเตอร์ส่วนใหญ่ การค้นหาและลบไฟล์ที่ซ้ำกันเป็นงานที่น่าเบื่อซึ่งต้องใช้เวลาและความอดทน การค้นหาไฟล์ที่ซ้ำกันอาจเป็นเรื่องง่ายมากหากเครื่องของคุณขับเคลื่อนโดย GNU/Linux ต้องขอบคุณ 'fdupes ‘ ยูทิลิตี้.
Fdupes – ค้นหาและลบไฟล์ที่ซ้ำกันใน Linux fdupes คืออะไร?
เอฟดูเปส เป็นโปรแกรมอรรถประโยชน์ Linux ที่เขียนโดย Adrian Lopez ใน C ภาษาการเขียนโปรแกรมเผยแพร่ภายใต้ใบอนุญาต MIT แอปพลิเคชันสามารถค้นหาไฟล์ที่ซ้ำกันในชุดไดเร็กทอรีและไดเร็กทอรีย่อยที่กำหนด Fdupes จดจำรายการที่ซ้ำกันโดยการเปรียบเทียบลายเซ็น MD5 ของไฟล์ ตามด้วยการเปรียบเทียบแบบไบต์ต่อไบต์ มีตัวเลือกมากมายที่สามารถส่งผ่านด้วย Fdupes เพื่อแสดงรายการ ลบ และแทนที่ไฟล์ด้วยฮาร์ดลิงก์ไปยังรายการที่ซ้ำกัน
การเปรียบเทียบเริ่มต้นตามลำดับ:
การเปรียบเทียบขนาด> การเปรียบเทียบลายเซ็น MD5 บางส่วน> การเปรียบเทียบลายเซ็น MD5 แบบเต็ม> การเปรียบเทียบแบบไบต์ต่อไบต์ .
ติดตั้ง fdupes บน Linux
การติดตั้ง fdupes เวอร์ชันล่าสุด (fdupes เวอร์ชัน 1.51) ง่ายดายเหมือนกับการรันคำสั่งต่อไปนี้บน Debian ระบบที่ใช้เช่น Ubuntu และ ลินุกซ์ มิ้นท์ .
$ sudo apt-get install fdupes
บน CentOS /อาร์เฮล และ เฟโดร่า ระบบที่ใช้ คุณต้องเปิดพื้นที่เก็บข้อมูล epel เพื่อติดตั้งแพ็คเกจ fdupes
# yum install fdupes # dnf install fdupes [On Fedora 22 onwards]
หมายเหตุ :ตัวจัดการแพ็คเกจเริ่มต้น yum ถูกแทนที่ด้วย dnf จาก Fedora 22 เป็นต้นไป…
จะใช้คำสั่ง fdupes ได้อย่างไร?
1. เพื่อวัตถุประสงค์ในการสาธิต เรามาสร้างไฟล์ที่ซ้ำกันสองสามไฟล์ภายใต้ไดเร็กทอรี (พูดว่า tecmint ) เหมือนกับ:
$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done
หลังจากรันคำสั่งด้านบนแล้ว ให้ตรวจสอบว่าไฟล์ที่ซ้ำกันถูกสร้างขึ้นหรือไม่ใช้คำสั่ง ls
$ ls -l total 60 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint10.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint11.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint12.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint13.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint14.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint15.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint1.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint2.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint3.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint4.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint5.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint6.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint7.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint8.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
สคริปต์ด้านบนสร้าง 15 ไฟล์ต่างๆ ได้แก่ tecmint1.txt, tecmint2.txt…tecmint15.txt และทุกไฟล์มีข้อมูลเดียวกัน กล่าวคือ
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. ตอนนี้ให้ค้นหาไฟล์ที่ซ้ำกันภายในโฟลเดอร์ tecmint .
$ fdupes /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
3. ค้นหารายการที่ซ้ำกันซ้ำๆ ในทุกไดเร็กทอรีรวมถึงไดเร็กทอรีย่อยโดยใช้ -r ตัวเลือก
โดยจะค้นหาไฟล์และโฟลเดอร์ทั้งหมดแบบวนซ้ำ ขึ้นอยู่กับจำนวนไฟล์และโฟลเดอร์ที่จะใช้เวลาในการสแกนรายการที่ซ้ำกัน ในช่วงเวลานั้น คุณจะได้เห็นความคืบหน้าทั้งหมดในเทอร์มินัล อะไรประมาณนี้
$ fdupes -r /home Progress [37780/54747] 69%
4. ดูขนาดของรายการที่ซ้ำกันที่พบในโฟลเดอร์โดยใช้ -S ตัวเลือก
$ fdupes -S /home/$USER/Desktop/tecmint 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
5. คุณสามารถดูขนาดของไฟล์ที่ซ้ำกันสำหรับทุกไดเร็กทอรีและไดเร็กทอรีย่อยที่พบภายในการใช้ -S และ -r ตัวเลือกในเวลาเดียวกัน เช่น:
$ fdupes -Sr /home/avi/Desktop/ 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt 107 bytes each: /home/tecmint/Desktop/resume_files/r-csc.html /home/tecmint/Desktop/resume_files/fc.html
6. นอกเหนือจากการค้นหาในโฟลเดอร์เดียวหรือทุกโฟลเดอร์แบบวนซ้ำ คุณสามารถเลือกเลือกเป็นสองโฟลเดอร์หรือสามโฟลเดอร์ได้ตามต้องการ ไม่ต้องพูดถึง คุณสามารถใช้ตัวเลือก -S และ/หรือ -r ถ้าจำเป็น
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
7. หากต้องการลบไฟล์ที่ซ้ำกันในขณะที่เก็บสำเนาไว้ คุณสามารถใช้ตัวเลือก '-d' . ควรใช้ความระมัดระวังเป็นพิเศษในขณะที่ใช้ตัวเลือกนี้ ไม่เช่นนั้นคุณอาจสูญเสียไฟล์/ข้อมูลที่จำเป็น และโปรดทราบว่ากระบวนการนี้ไม่สามารถกู้คืนได้
$ fdupes -d /home/$USER/Desktop/tecmint [1] /home/tecmint/Desktop/tecmint/tecmint13.txt [2] /home/tecmint/Desktop/tecmint/tecmint8.txt [3] /home/tecmint/Desktop/tecmint/tecmint11.txt [4] /home/tecmint/Desktop/tecmint/tecmint3.txt [5] /home/tecmint/Desktop/tecmint/tecmint4.txt [6] /home/tecmint/Desktop/tecmint/tecmint6.txt [7] /home/tecmint/Desktop/tecmint/tecmint7.txt [8] /home/tecmint/Desktop/tecmint/tecmint9.txt [9] /home/tecmint/Desktop/tecmint/tecmint10.txt [10] /home/tecmint/Desktop/tecmint/tecmint2.txt [11] /home/tecmint/Desktop/tecmint/tecmint5.txt [12] /home/tecmint/Desktop/tecmint/tecmint14.txt [13] /home/tecmint/Desktop/tecmint/tecmint1.txt [14] /home/tecmint/Desktop/tecmint/tecmint15.txt [15] /home/tecmint/Desktop/tecmint/tecmint12.txt Set 1 of 1, preserve files [1 - 15, all]:
คุณอาจสังเกตเห็นว่ารายการที่ซ้ำกันทั้งหมดแสดงอยู่ในรายการ และคุณได้รับแจ้งให้ลบทีละรายการหรือบางช่วงหรือทั้งหมดพร้อมกัน คุณสามารถเลือกช่วงด้านล่างเพื่อลบไฟล์ในช่วงที่ต้องการได้
Set 1 of 1, preserve files [1 - 15, all]: 2-15 [-] /home/tecmint/Desktop/tecmint/tecmint13.txt [+] /home/tecmint/Desktop/tecmint/tecmint8.txt [-] /home/tecmint/Desktop/tecmint/tecmint11.txt [-] /home/tecmint/Desktop/tecmint/tecmint3.txt [-] /home/tecmint/Desktop/tecmint/tecmint4.txt [-] /home/tecmint/Desktop/tecmint/tecmint6.txt [-] /home/tecmint/Desktop/tecmint/tecmint7.txt [-] /home/tecmint/Desktop/tecmint/tecmint9.txt [-] /home/tecmint/Desktop/tecmint/tecmint10.txt [-] /home/tecmint/Desktop/tecmint/tecmint2.txt [-] /home/tecmint/Desktop/tecmint/tecmint5.txt [-] /home/tecmint/Desktop/tecmint/tecmint14.txt [-] /home/tecmint/Desktop/tecmint/tecmint1.txt [-] /home/tecmint/Desktop/tecmint/tecmint15.txt [-] /home/tecmint/Desktop/tecmint/tecmint12.txt
8. จากมุมมองด้านความปลอดภัย คุณอาจต้องการพิมพ์ผลลัพธ์ของ 'fdupes' ไฟล์แล้วตรวจสอบไฟล์ข้อความเพื่อตัดสินใจว่าจะลบไฟล์ใด ซึ่งจะช่วยลดโอกาสที่ไฟล์ของคุณจะถูกลบโดยไม่ตั้งใจ คุณอาจจะ:
$ fdupes -Sr /home > /home/fdupes.txt
หมายเหตุ :คุณสามารถแทนที่ '/home' ได้ ด้วยโฟลเดอร์ที่คุณต้องการ ใช้ตัวเลือก '-r' ด้วย และ '-S' หากคุณต้องการค้นหาแบบเรียกซ้ำและขนาดการพิมพ์ ตามลำดับ
9. คุณสามารถละเว้นไฟล์แรกจากการจับคู่แต่ละชุดได้โดยใช้ตัวเลือก '-f' .
รายการไฟล์แรกของไดเร็กทอรี
$ ls -l /home/$USER/Desktop/tecmint total 20 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (3rd copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (4th copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (another copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
จากนั้นละเว้นไฟล์แรกจากการจับคู่แต่ละชุด
$ fdupes -f /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint9 (copy).txt /home/tecmint/Desktop/tecmint9 (3rd copy).txt /home/tecmint/Desktop/tecmint9 (another copy).txt /home/tecmint/Desktop/tecmint9 (4th copy).txt
10. ตรวจสอบเวอร์ชันที่ติดตั้งของ fdupes
$ fdupes --version fdupes 1.51
11. หากคุณต้องการความช่วยเหลือเกี่ยวกับ fdupes คุณสามารถใช้สวิตช์ '-h' .
$ fdupes -h Usage: fdupes [options] DIRECTORY... -r --recurse for every directory given follow subdirectories encountered within -R --recurse: for each directory given after this option follow subdirectories encountered within (note the ':' at the end of the option, manpage for more details) -s --symlinks follow symlinks -H --hardlinks normally, when two or more files point to the same disk area they are treated as non-duplicates; this option will change this behavior -n --noempty exclude zero-length files from consideration -A --nohidden exclude hidden files from consideration -f --omitfirst omit the first file in each set of matches -1 --sameline list each set of matches on a single line -S --size show size of duplicate files -m --summarize summarize dupe information -q --quiet hide progress indicator -d --delete prompt user for files to preserve and delete all others; important: under particular circumstances, data may be lost when using this option together with -s or --symlinks, or when specifying a particular directory more than once; refer to the fdupes documentation for additional information -N --noprompt together with --delete, preserve the first file in each set of duplicates and delete the rest without prompting the user -v --version display fdupes version -h --help display this help message
นั่นคือทั้งหมดตอนนี้ แจ้งให้เราทราบว่าคุณค้นหาและลบไฟล์ที่ซ้ำกันใน Linux จนถึงขณะนี้ได้อย่างไร และบอกความคิดเห็นของคุณเกี่ยวกับยูทิลิตี้นี้ให้ฉันทราบด้วย ใส่คำติชมอันมีค่าของคุณในส่วนความคิดเห็นด้านล่าง และอย่าลืมกดไลค์/แชร์เรา และช่วยให้เราแพร่กระจาย
ฉันกำลังพัฒนาโปรแกรมอรรถประโยชน์อื่นที่เรียกว่า fslint เพื่อลบไฟล์ที่ซ้ำกัน และจะโพสต์เร็วๆ นี้ และพวกคุณทุกคนจะชอบอ่าน