เปรียบเทียบเนื้อหาของสองไดเรกทอรีจากบรรทัดคำสั่ง

เพื่อเปรียบเทียบและแสดงรายการเนื้อหาต่างๆของสองไดเร็กทอรีโดยไม่มีผลลัพธ์พิเศษที่คุณได้รับผ่านคำสั่งเช่น diff คุณสามารถใช้คำสั่ง comm แทนได้ เมื่อต้องการเริ่มต้นให้เรียกใช้ Terminal และพิมพ์คำสั่งต่อไปนี้ปรับเส้นทางไดเร็กทอรีตามความเหมาะสม:

comm -3 <(ls -1 folder1) <(ls -1 folder2)

ผลลัพธ์ที่ระบุไว้จะเป็นไฟล์ที่แตกต่างกันในแต่ละโฟลเดอร์โดยมีไฟล์ที่ไม่ซ้ำกับโฟลเดอร์ 1 ชิดซ้ายและไฟล์ที่ไม่ซ้ำกับโฟลเดอร์ 2 ชิดขวา

ตัวอย่างเช่นเมื่อต้องการเปรียบเทียบเนื้อหาของโฟลเดอร์ที่เรียกว่า "รูปภาพ" และโฟลเดอร์ชื่อ "OldPictures" ซึ่งเก็บไว้ในไดเรกทอรีดาวน์โหลดของผู้ใช้ไวยากรณ์จะเป็นดังนี้:

comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)

เอาต์พุตอาจมีลักษณะดังนี้:

$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
Folder-1-File.PNG
Folder-2-File copy.PNG
photo 1 copy.PNG
photo 3.PNG

หมายเหตุการเยื้องซึ่งแสดงให้เห็นว่าไฟล์ใดที่มีเฉพาะในแต่ละโฟลเดอร์ ในตัวอย่างข้างต้นไฟล์ "photo copy_PNG" และ "photo_png" ถูกจัดชิดขวาจึงมีเอกลักษณ์เฉพาะสำหรับไดเร็กทอรี OldPictures และ Folder-1-File.PNG และ Folder-2-File copy PNG มีเอกลักษณ์เฉพาะสำหรับโฟลเดอร์ Pictures เดิม

นี้ทำงานได้ดีใน Mac OS X แต่เป็นคำสั่ง unix ทั่วไปดังนั้นคุณควรจะพบว่าใช้งานได้ใน linux และตัวแปรอื่น ๆ เช่นกัน ถ้าคุณพบปัญหาเกี่ยวกับความเข้ากันได้หรือพบว่าคำสั่งนี้ซับซ้อนโดยไม่จำเป็นลองใช้ diff เพื่อทำหน้าที่เดียวกัน

เคล็ดลับที่ดีที่พบโดย @climagic บน Twitter, @osxdaily ก็อยู่ที่นั่นด้วยเช่นกัน!