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

10 เครื่องมือเปรียบเทียบไฟล์และความแตกต่าง (Diff) ที่ดีที่สุดใน Linux


ในขณะที่เขียนไฟล์โปรแกรมหรือไฟล์ข้อความปกติ บางครั้งโปรแกรมเมอร์และผู้เขียนต้องการทราบความแตกต่างระหว่างไฟล์สองไฟล์หรือสองเวอร์ชันของไฟล์เดียวกัน

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

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

1. คำสั่งต่าง

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

เพื่อเปรียบเทียบสองไฟล์และแสดงความแตกต่าง

diff file1.txt file2.txt

คุณสามารถตรวจสอบการป้อนข้อมูลด้วยตนเองสำหรับ diff เพื่อให้ใช้งานได้ง่าย

man diff

มี Wrapper บางส่วนสำหรับเครื่องมือ diff ที่ปรับปรุงฟังก์ชันการทำงาน และรวมถึง:

คำสั่ง colordiff

Colordiff เป็นสคริปต์ Perl ที่สร้างผลลัพธ์เหมือนกับ diff แต่มีการเน้นสีและไวยากรณ์ มีโทนสีที่ปรับแต่งได้

คุณสามารถติดตั้ง Colordiff บนระบบ Linux โดยใช้เครื่องมือจัดการแพ็คเกจเริ่มต้นที่เรียกว่า yum, dnf และ apt-get หรือ apt ตามที่แสดง

sudo apt install colordiff         [On Debian, Ubuntu and Mint]
sudo yum install colordiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/colordiff  [On Gentoo Linux]
sudo apk add colordiff             [On Alpine Linux]
sudo pacman -S colordiff           [On Arch Linux]
sudo zypper install colordiff      [On OpenSUSE]    

เพื่อเปรียบเทียบไดเร็กทอรีแบบวนซ้ำ

colordiff file1.txt file2.txt

คุณสามารถตรวจสอบการป้อนด้วยตนเองสำหรับ colordiff ดังที่แสดง

man colordiff

คำสั่ง wdiff

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

หากต้องการติดตั้ง wdiff บนระบบ Linux ให้เรียกใช้:

sudo apt install wdiff         [On Debian, Ubuntu and Mint]
sudo yum install wdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/wdiff  [On Gentoo Linux]
sudo apk add wdiff             [On Alpine Linux]
sudo pacman -S wdiff           [On Arch Linux]
sudo zypper install wdiff      [On OpenSUSE]    

หากต้องการแสดงทั้งสองไฟล์เคียงข้างกัน โดยเน้นความแตกต่างระดับคำ

wdiff file1.txt file2.txt

ใช้คู่มือ wdiff เกี่ยวกับวิธีการใช้งานบน Linux

man wdiff

2. กองบัญชาการวิมดิฟฟ์

Vimdiff ทำงานในลักษณะขั้นสูงเมื่อเปรียบเทียบกับยูทิลิตี diff ซึ่งช่วยให้ผู้ใช้สามารถแก้ไขไฟล์ได้ถึงสี่เวอร์ชันในขณะที่แสดงความแตกต่าง เมื่อคุณเรียกใช้ Vimdiff จะเปิดไฟล์สองหรือสามหรือสี่ไฟล์โดยใช้โปรแกรมแก้ไขข้อความ Vim

หากต้องการใช้ vimdiff คุณจะต้องติดตั้ง Vim ในระบบของคุณ แต่หากยังไม่ได้ติดตั้ง คุณสามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจ

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

หากต้องการเปรียบเทียบสองไฟล์โดยใช้ vimdiff คุณจะต้องดำเนินการคำสั่งต่อไปนี้

vimdiff file1.txt file2.txt

คุณยังสามารถใช้ vimdiff เพื่อเปรียบเทียบไฟล์สามไฟล์ได้

vimdiff file1.txt file2.txt file3.txt

สำหรับข้อมูลรายละเอียดเพิ่มเติมและตัวเลือกการใช้งาน คุณสามารถเข้าถึงหน้าคู่มือได้โดยการเรียกใช้

man vimdiff

3.sdiff

คำสั่ง sdiff ใช้เพื่อเปรียบเทียบไฟล์สองไฟล์เคียงข้างกัน โดยเน้นความแตกต่างระหว่างไฟล์เหล่านั้น โดยจะแสดงเนื้อหาของทั้งสองไฟล์ในคอลัมน์แยกกัน โดยมีบรรทัดที่เพิ่มขึ้นนำหน้าด้วย ">" บรรทัดที่ถูกลบขึ้นนำหน้าด้วย "<" และบรรทัดทั่วไปที่แสดงโดยไม่มีคำนำหน้าใดๆ .

โดยทั่วไปคำสั่ง sdiff จะมาพร้อมกับการติดตั้งมาตรฐานของ Linux ส่วนใหญ่ อย่างไรก็ตาม หากไม่ได้ติดตั้ง คุณสามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจของคุณ

sudo apt install diffutils         [On Debian, Ubuntu and Mint]
sudo yum install diffutils         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffutils  [On Gentoo Linux]
sudo apk add diffutils             [On Alpine Linux]
sudo pacman -S diffutils           [On Arch Linux]
sudo zypper install diffutils      [On OpenSUSE]    

เพื่อเปรียบเทียบสองไฟล์และแสดงความแตกต่างแบบเคียงข้างกัน

sdiff file1.txt file2.txt

เมื่อพิจารณาเครื่องมือ diff แบบเก่าแล้ว เรามาดูเครื่องมือ diff บางตัวที่มีอยู่บน Linux กันดีกว่า

4. คอมปาเร

คอมปาเรคือเครื่องมือสร้างความแตกต่างและผสานแบบกราฟิกที่ให้ผู้ใช้สามารถเปรียบเทียบและดูความแตกต่างระหว่างไฟล์และรวมเข้าด้วยกันได้

หากต้องการติดตั้ง Kompare บน Linux คุณสามารถใช้ตัวจัดการแพ็คเกจเฉพาะสำหรับระบบของคุณได้

sudo apt install kompare         [On Debian, Ubuntu and Mint]
sudo yum install kompare         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kompare  [On Gentoo Linux]
sudo apk add kompare             [On Alpine Linux]
sudo pacman -S kompare           [On Arch Linux]
sudo zypper install kompare      [On OpenSUSE]    

คุณสมบัติบางอย่างประกอบด้วย:

  • รองรับรูปแบบที่แตกต่างกันหลายรูปแบบ
  • รองรับการเปรียบเทียบไดเร็กทอรี
  • รองรับการอ่านไฟล์ diff
  • อินเทอร์เฟซที่ปรับแต่งได้
  • การสร้างและใช้แพตช์กับไฟล์ต้นฉบับ

5. ดิฟผสาน

DiffMerge เป็นแอปพลิเคชัน GUI ข้ามแพลตฟอร์มสำหรับการเปรียบเทียบและรวมไฟล์ มีกลไกการทำงานสองแบบ ได้แก่ กลไก Diff ซึ่งแสดงความแตกต่างระหว่างสองไฟล์ และสนับสนุนการไฮไลต์และการแก้ไขภายในบรรทัด และกลไก ผสาน ซึ่งส่งออกบรรทัดที่เปลี่ยนแปลงระหว่าง สามไฟล์

มันมีคุณสมบัติดังต่อไปนี้:

  • รองรับการเปรียบเทียบไดเร็กทอรี
  • การรวมเบราว์เซอร์ไฟล์
  • กำหนดค่าได้สูง

6. เครื่องมือ Meld – Diff

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

  • การเปรียบเทียบไฟล์และไดเร็กทอรีแบบสองทางและสามทาง
  • อัปเดตการเปรียบเทียบไฟล์เมื่อผู้ใช้พิมพ์คำเพิ่มเติม
  • ทำให้การผสานง่ายขึ้นโดยใช้โหมดการผสานอัตโนมัติและการดำเนินการกับบล็อกที่เปลี่ยนแปลง
  • การเปรียบเทียบอย่างง่ายโดยใช้การแสดงภาพ
  • รองรับ Git, Mercurial, Subversion, Bazaar และอีกมากมาย

หากต้องการติดตั้ง Meld บน Linux คุณสามารถใช้ตัวจัดการแพ็คเกจเพื่อติดตั้งจากที่เก็บข้อมูลอย่างเป็นทางการ

sudo apt install meld         [On Debian, Ubuntu and Mint]
sudo yum install meld         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/meld  [On Gentoo Linux]
sudo apk add meld             [On Alpine Linux]
sudo pacman -S meld           [On Arch Linux]
sudo zypper install meld      [On OpenSUSE]    

7. กระจาย – เครื่องมือ GUI Diff

Diffuse เป็นเครื่องมือกระจายและผสาน GUI ยอดนิยม ฟรี ขนาดเล็ก และเรียบง่ายที่คุณสามารถใช้กับ Linux เขียนด้วยภาษา Python มีฟังก์ชันหลักสองฟังก์ชัน นั่นคือ: การเปรียบเทียบไฟล์และการควบคุมเวอร์ชัน ช่วยให้สามารถแก้ไขไฟล์ และรวมไฟล์ และยังแสดงความแตกต่างระหว่างไฟล์อีกด้วย

หากต้องการติดตั้ง Diffuse บน Linux คุณสามารถใช้ตัวจัดการแพ็คเกจตามที่แสดง

sudo apt install diffuse         [On Debian, Ubuntu and Mint]
sudo yum install diffuse         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffuse  [On Gentoo Linux]
sudo apk add diffuse             [On Alpine Linux]
sudo pacman -S diffuse           [On Arch Linux]
sudo zypper install diffuse      [On OpenSUSE]    

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

คุณสมบัติอื่น ๆ ได้แก่ :

  • การเน้นไวยากรณ์
  • แป้นพิมพ์ลัดเพื่อการนำทางที่ง่ายดาย
  • รองรับการเลิกทำไม่จำกัด
  • การสนับสนุนยูนิโค้ด
  • รองรับ Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK และ Monotone

8. XXdiff – เครื่องมือแยกความแตกต่างและผสาน

XXdiff เป็นเครื่องมือเปรียบเทียบไฟล์และไดเร็กทอรีที่มีประสิทธิภาพฟรีและผสานการทำงานบนระบบปฏิบัติการแบบ Unix เช่น Linux, Solaris, HP/UX, IRIX และ DEC Tru64 ข้อจำกัดประการหนึ่งของ XXdiff คือการขาดการสนับสนุนไฟล์ Unicode และการแก้ไขไฟล์ diff แบบอินไลน์

มันมีรายการคุณสมบัติดังต่อไปนี้:

  • การเปรียบเทียบแบบตื้นและแบบเรียกซ้ำของสอง, สามไฟล์หรือสองไดเร็กทอรี
  • การเน้นความแตกต่างในแนวนอน
  • การรวมไฟล์แบบโต้ตอบและการบันทึกผลลัพธ์ผลลัพธ์
  • รองรับการทบทวน/การตรวจตราแบบรวม
  • รองรับเครื่องมือ diff ภายนอก เช่น GNU diff, SIG diff, Cleareddiff และอื่นๆ อีกมากมาย
  • ขยายได้โดยใช้สคริปต์
  • ปรับแต่งได้อย่างเต็มที่โดยใช้ไฟล์ทรัพยากรพร้อมคุณสมบัติรองอื่นๆ อีกมากมาย

9. KDiff3 – – เครื่องมือแยกความแตกต่างและผสาน

KDiff3 เป็นอีกหนึ่งเครื่องมือกระจายและผสานข้ามแพลตฟอร์มที่ยอดเยี่ยมที่สร้างจาก KDevelop ซึ่งทำงานบนแพลตฟอร์มที่คล้ายกับ Unix ทั้งหมด รวมถึง Linux และ Mac OS X, Windows

หากต้องการติดตั้ง KDiff3 บน Linux คุณสามารถใช้ตัวจัดการแพ็คเกจตามที่แสดง

sudo apt install kdiff3         [On Debian, Ubuntu and Mint]
sudo yum install kdiff3         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kdiff3  [On Gentoo Linux]
sudo apk add kdiff3             [On Alpine Linux]
sudo pacman -S kdiff3           [On Arch Linux]
sudo zypper install kdiff3      [On OpenSUSE]    

สามารถเปรียบเทียบหรือรวมไฟล์หรือไดเร็กทอรีได้สองถึงสามไฟล์และมีคุณสมบัติเด่นดังต่อไปนี้:

  • ระบุความแตกต่างทีละบรรทัดและอักขระต่ออักขระ
  • รองรับการรวมอัตโนมัติ
  • เครื่องมือแก้ไขที่สร้างขึ้นเพื่อจัดการกับข้อขัดแย้งในการผสาน
  • รองรับ Unicode, UTF-8 และตัวแปลงสัญญาณอื่น ๆ อีกมากมาย
  • ช่วยให้สามารถพิมพ์ความแตกต่างได้
  • รองรับการรวม Windows Explorer
  • นอกจากนี้ยังรองรับการตรวจจับอัตโนมัติผ่านเครื่องหมายลำดับไบต์ “BOM”
  • รองรับการจัดแนวเส้นด้วยตนเอง
  • GUI ที่ใช้งานง่ายและอีกมากมาย

10. ทีเคดิฟ

TkDiff ยังเป็น Wrapper GUI ข้ามแพลตฟอร์มและใช้งานง่ายสำหรับเครื่องมือ Unix diff ที่ให้มุมมองแบบเคียงข้างกันของความแตกต่างระหว่างไฟล์อินพุตสองไฟล์ สามารถทำงานบน Linux, Windows และ Mac OS X

นอกจากนี้ยังมีฟีเจอร์ที่น่าตื่นเต้นอื่น ๆ เช่น บุ๊กมาร์กต่าง แผนที่แสดงความแตกต่างแบบกราฟิกเพื่อการนำทางที่ง่ายและรวดเร็ว และอีกมากมาย

หากต้องการติดตั้ง TkDiff บน Linux คุณสามารถใช้ตัวจัดการแพ็คเกจตามที่แสดง

sudo apt install tkdiff         [On Debian, Ubuntu and Mint]
sudo yum install tkdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tkdiff  [On Gentoo Linux]
sudo apk add tkdiff             [On Alpine Linux]
sudo pacman -S tkdiff           [On Arch Linux]
sudo zypper install tkdiff      [On OpenSUSE]    
บทสรุป

เมื่ออ่านบทวิจารณ์เครื่องมือเปรียบเทียบไฟล์และไดเร็กทอรีที่ดีที่สุดและเครื่องมือผสานแล้ว คุณอาจต้องการลองใช้บางส่วน

สิ่งเหล่านี้อาจไม่ใช่เครื่องมือ diff เพียงอย่างเดียวที่คุณสามารถพบได้บน Linux แต่เป็นที่รู้กันว่ามีคุณสมบัติที่ดีที่สุด คุณอาจต้องการแจ้งให้เราทราบถึงเครื่องมือ diff อื่น ๆ ที่คุณได้ทดสอบและคิดว่าสมควรได้รับ ได้รับการกล่าวถึงในหมู่สิ่งที่ดีที่สุด