ค้นหาเว็บไซต์

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 ของคุณ แต่คุณควรระมัดระวังอย่างมากในการลบไฟล์ดังกล่าว

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