5 เครื่องมือที่ดีที่สุดในการค้นหาและลบไฟล์ที่ซ้ำกันใน Linux
การจัดระเบียบโฮมไดเร็กตอรี่หรือแม้แต่ระบบของคุณอาจเป็นเรื่องยากหากคุณมีนิสัยชอบดาวน์โหลดข้อมูลทุกประเภทจากอินเทอร์เน็ตโดยใช้ตัวจัดการการดาวน์โหลดของคุณ
บ่อยครั้งคุณอาจพบว่าคุณได้ดาวน์โหลดไฟล์ mp3, pdf และ epub เดียวกัน (และนามสกุลไฟล์อื่นๆ ทุกประเภท) และคัดลอกไปยังไดเร็กทอรีอื่น นี่อาจทำให้ไดเร็กทอรีของคุณเต็มไปด้วยสิ่งที่ซ้ำซ้อนไร้ประโยชน์ทุกประเภท
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีค้นหาและลบไฟล์ที่ซ้ำกันใน Linux โดยใช้เครื่องมือบรรทัดคำสั่ง rdfind, fdupes และ rmlint รวมถึงการใช้เครื่องมือ GUI ที่เรียกว่า DupeGuru และ FSlint
ข้อควรระวัง – ควรระมัดระวังสิ่งที่คุณลบในระบบของคุณเสมอ เนื่องจากอาจทำให้ข้อมูลที่ไม่พึงประสงค์สูญหายได้ หากคุณกำลังใช้เครื่องมือใหม่ ให้ลองใช้ในไดเร็กทอรีทดสอบก่อน ซึ่งการลบไฟล์จะไม่เป็นปัญหา
1. Rdfind – ค้นหาไฟล์ที่ซ้ำกันใน Linux
Rdfind มาจากการค้นหาข้อมูลที่ซ้ำซ้อน ซึ่งเป็นเครื่องมือบรรทัดคำสั่งฟรีที่ใช้เพื่อค้นหาไฟล์ที่ซ้ำกันในหรือภายในหลายไดเรกทอรี โดยจะสแกนไดเรกทอรีซ้ำและระบุไฟล์ที่มีเนื้อหาเหมือนกัน ช่วยให้คุณสามารถดำเนินการที่เหมาะสม เช่น ลบหรือย้ายรายการที่ซ้ำกัน
Rdfind ใช้อัลกอริทึมในการจัดประเภทไฟล์และตรวจสอบว่าไฟล์ใดที่ซ้ำกันเป็นไฟล์ต้นฉบับ และถือว่าส่วนที่เหลือเป็นไฟล์ที่ซ้ำกัน
กฎการจัดอันดับคือ:
- หากพบ A ขณะสแกนอาร์กิวเมนต์อินพุตก่อนหน้า B แสดงว่า A จะได้รับการจัดอันดับที่สูงกว่า
- หากพบ A ที่ความลึกต่ำกว่า B แสดงว่า A จะได้รับการจัดอันดับที่สูงกว่า
- หากพบ A ก่อน B A จะได้รับการจัดอันดับที่สูงกว่า
กฎข้อสุดท้ายถูกใช้โดยเฉพาะเมื่อพบไฟล์สองไฟล์ในไดเร็กทอรีเดียวกัน
ติดตั้ง Rdfind บน Linux
หากต้องการติดตั้ง rdfind ใน Linux ให้ใช้คำสั่งต่อไปนี้ตามการกระจาย Linux ของคุณ
sudo apt install rdfind [On Debian, Ubuntu and Mint]
sudo yum install rdfind [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rdfind [On Gentoo Linux]
sudo apk add rdfind [On Alpine Linux]
sudo pacman -S rdfind [On Arch Linux]
sudo zypper install rdfind [On OpenSUSE]
หากต้องการเรียกใช้ rdfind บนไดเร็กทอรี เพียงพิมพ์ rdfind และไดเร็กทอรีเป้าหมาย
rdfind /home/user
อย่างที่คุณเห็น rdfind จะบันทึกผลลัพธ์ในไฟล์ชื่อ results.txt ซึ่งอยู่ในไดเร็กทอรีเดียวกันกับที่คุณรันโปรแกรม ไฟล์นี้ประกอบด้วยไฟล์ที่ซ้ำกันทั้งหมดที่ rdfind พบ คุณสามารถตรวจสอบไฟล์และลบไฟล์ที่ซ้ำกันด้วยตนเองได้หากต้องการ
อีกสิ่งหนึ่งที่คุณสามารถทำได้คือใช้ตัวเลือก -dryrun
ที่จะแสดงรายการรายการที่ซ้ำกันโดยไม่ต้องดำเนินการใดๆ:
rdfind -dryrun true /home/user
เมื่อคุณพบรายการที่ซ้ำกัน คุณสามารถเลือกที่จะแทนที่ด้วยฮาร์ดลิงก์ได้
rdfind -makehardlinks true /home/user
และถ้าคุณต้องการลบรายการที่ซ้ำกัน คุณสามารถเรียกใช้ได้
rdfind -deleteduplicates true /home/user
หากต้องการตรวจสอบตัวเลือกที่มีประโยชน์อื่นๆ ของ rdfind คุณสามารถใช้คู่มือ rdfind ได้
man rdfind
2. Fdupes – สแกนหาไฟล์ที่ซ้ำกันใน Linux
Fdupes เป็นอีกหนึ่งโปรแกรมบรรทัดคำสั่งที่ให้คุณระบุไฟล์ที่ซ้ำกันในระบบของคุณ ค้นหาไดเรกทอรีซ้ำ ๆ โดยเปรียบเทียบขนาดไฟล์และเนื้อหาเพื่อระบุรายการที่ซ้ำกัน
ใช้วิธีการต่อไปนี้เพื่อกำหนดไฟล์ที่ซ้ำกัน:
- การเปรียบเทียบลายเซ็น md5sum บางส่วน
- การเปรียบเทียบลายเซ็น md5sum แบบเต็ม
- การตรวจสอบเปรียบเทียบแบบไบต์ต่อไบต์
เช่นเดียวกับ rdfind มันมีตัวเลือกที่คล้ายกัน:
- ค้นหาซ้ำ
- ยกเว้นไฟล์เปล่า
- แสดงขนาดของไฟล์ที่ซ้ำกัน
- ลบรายการที่ซ้ำกันทันที
- ยกเว้นไฟล์ที่มีเจ้าของรายอื่น
ติดตั้ง Fdupes ใน Linux
หากต้องการติดตั้ง fdupes ใน Linux ให้ใช้คำสั่งต่อไปนี้ตามการกระจาย Linux ของคุณ
sudo apt install fdupes [On Debian, Ubuntu and Mint]
sudo yum install fdupes [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fdupes [On Gentoo Linux]
sudo apk add fdupes [On Alpine Linux]
sudo pacman -S fdupes [On Arch Linux]
sudo zypper install fdupes [On OpenSUSE]
ไวยากรณ์ Fdupes คล้ายกับ rdfind เพียงพิมพ์คำสั่งตามด้วยไดเร็กทอรีที่คุณต้องการสแกน
fdupes <dir>
หากต้องการค้นหาไฟล์แบบวนซ้ำ คุณจะต้องระบุตัวเลือก -r
เช่นนี้
fdupes -r <dir>
คุณยังสามารถระบุหลายไดเรกทอรีและระบุ dir ที่จะค้นหาซ้ำ
fdupes <dir1> -r <dir2>
หากต้องการให้ fdupes คำนวณขนาดของไฟล์ที่ซ้ำกัน ให้ใช้ตัวเลือก -S
fdupes -S <dir>
หากต้องการรวบรวมข้อมูลโดยสรุปเกี่ยวกับไฟล์ที่พบ ให้ใช้ตัวเลือก -m
fdupes -m <dir>
สุดท้าย หากคุณต้องการลบรายการที่ซ้ำกันทั้งหมด ให้ใช้ตัวเลือก -d
เช่นนี้
fdupes -d <dir>
Fdupes จะถามว่าไฟล์ใดที่พบที่จะลบ คุณจะต้องป้อนหมายเลขไฟล์:
วิธีแก้ไขที่ไม่แนะนำอย่างแน่นอนคือการใช้ตัวเลือก -N
ซึ่งจะส่งผลให้มีการเก็บรักษาไฟล์แรกไว้เท่านั้น
fdupes -dN <dir>
หากต้องการรับรายการตัวเลือกที่ใช้กับ fdupes ให้ตรวจสอบหน้าความช่วยเหลือโดยเรียกใช้
fdupes -help
3. Rmlint – ลบไฟล์ที่ซ้ำกัน
Rmlint เป็นเครื่องมือบรรทัดคำสั่งที่ใช้สำหรับค้นหาและลบไฟล์ที่ซ้ำและมีลักษณะเป็นขุยในระบบ Linux ช่วยระบุไฟล์ที่มีเนื้อหาเหมือนกัน รวมถึงรูปแบบต่างๆ ของความซ้ำซ้อนหรือขุย เช่น ไฟล์เปล่า ลิงก์สัญลักษณ์ที่ใช้งานไม่ได้ และไฟล์ที่ถูกละเลย
ติดตั้ง Rmlint บน Linux
หากต้องการติดตั้ง Rmlint ใน Linux ให้ใช้คำสั่งต่อไปนี้ตามการกระจาย Linux ของคุณ
sudo apt install rmlint [On Debian, Ubuntu and Mint]
sudo yum install rmlint [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rmlint [On Gentoo Linux]
sudo apk add rmlint [On Alpine Linux]
sudo pacman -S rmlint [On Arch Linux]
sudo zypper install rmlint [On OpenSUSE]
4. dupeGuru – ค้นหาไฟล์ที่ซ้ำกันใน Linux
dupeGuru เป็นเครื่องมือโอเพ่นซอร์สและข้ามแพลตฟอร์มที่ใช้ค้นหาไฟล์ที่ซ้ำกันในระบบ Linux เครื่องมือนี้สามารถสแกนชื่อไฟล์หรือเนื้อหาในโฟลเดอร์ตั้งแต่หนึ่งโฟลเดอร์ขึ้นไป นอกจากนี้ยังช่วยให้คุณค้นหาชื่อไฟล์ที่คล้ายกับไฟล์ที่คุณกำลังค้นหา
dupeGuru มีเวอร์ชันต่างๆ สำหรับแพลตฟอร์ม Windows, Mac และ Linux คุณสมบัติอัลกอริธึมการจับคู่แบบคลุมเครือที่รวดเร็วช่วยให้คุณค้นหาไฟล์ที่ซ้ำกันภายในหนึ่งนาที สามารถปรับแต่งได้ คุณสามารถดึงไฟล์ที่ซ้ำกันทุกประการที่คุณต้องการ และลบไฟล์ที่ไม่ต้องการออกจากระบบ
ติดตั้ง dupeGuru บน Linux
หากต้องการติดตั้ง dupeGuru ใน Linux ให้ใช้คำสั่งต่อไปนี้ตามการกระจาย Linux ของคุณ
sudo apt install dupeguru [On Debian, Ubuntu and Mint]
sudo yum install dupeguru [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/dupeguru [On Gentoo Linux]
sudo apk add dupeguru [On Alpine Linux]
sudo pacman -S dupeguru [On Arch Linux]
sudo zypper install dupeguru [On OpenSUSE]
5. FSlint – โปรแกรมค้นหาไฟล์ซ้ำสำหรับ Linux
FSlint เป็นยูทิลิตี้ฟรีที่ใช้เพื่อค้นหาและล้าง Lint รูปแบบต่างๆ บนระบบไฟล์ นอกจากนี้ยังรายงานไฟล์ที่ซ้ำกัน ไดเร็กทอรีว่าง ไฟล์ชั่วคราว ชื่อซ้ำ/ขัดแย้ง (ไบนารี) ลิงก์สัญลักษณ์ที่ไม่ถูกต้อง และอื่นๆ อีกมากมาย มีทั้งโหมดบรรทัดคำสั่งและ GUI
อย่างไรก็ตาม โปรดทราบว่า ณ วันที่ความรู้ของฉันถูกตัดออกไปในเดือนกันยายน 2022 FSlint ได้รับการอัปเดตครั้งล่าสุดในปี 2013 และอาจไม่ได้รับการบำรุงรักษาหรือเข้ากันได้กับ Linux รุ่นใหม่กว่า
ติดตั้ง FSlint บน Linux
หากต้องการติดตั้ง FSlint ใน Linux ให้ใช้คำสั่งต่อไปนี้ตามการกระจาย Linux ของคุณ
sudo apt install fslint [On Debian, Ubuntu and Mint]
sudo yum install fslint [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fslint [On Gentoo Linux]
sudo apk add fslint [On Alpine Linux]
sudo pacman -S fslint [On Arch Linux]
sudo zypper install fslint [On OpenSUSE]
บทสรุป
นี่เป็นเครื่องมือที่มีประโยชน์มากในการค้นหาไฟล์ที่ซ้ำกันบนระบบ Linux ของคุณ แต่คุณควรระมัดระวังอย่างมากในการลบไฟล์ดังกล่าว
หากคุณไม่แน่ใจว่าคุณต้องการไฟล์หรือไม่ คุณควรสร้างข้อมูลสำรองของไฟล์นั้นและจดจำไดเร็กทอรีของไฟล์ก่อนที่จะลบทิ้ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดส่งในส่วนความคิดเห็นด้านล่าง