השווה תוכן של שתי ספריות משורת הפקודה

Anonim

כדי להשוות ולפרט את התכנים השונים של שתי ספריות ללא הפלט הנוסף שאתה מקבל דרך פקודות כמו 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-קובץ העתקה.PNG photo 1 copy.PNG photo 3.PNG

שים לב להזחה, שמראה לך אילו קבצים ייחודיים לכל תיקיה. בדוגמה שלמעלה, הקובץ "photo 1 copy.PNG" ו-"photo 3.png" מיושרים ימינה, ולכן הם ייחודיים לספריית OldPictures, ולתיקיה-1-File.PNG ו- Folder-2-File copy.PNG הם ייחודיים לתיקיית התמונות המקורית.

זה עובד מצוין ב-Mac OS X, אבל זו פקודת יוניקס גנרית אז אתה אמור למצוא אותה שמישה גם בלינוקס ובגרסאות אחרות. אם אתה נתקל בבעיות תאימות כלשהן, או מוצא את הפקודה הזו מורכבת שלא לצורך, נסה להשתמש ב-diff כדי לבצע את אותה פונקציה.

טריק נהדר שמצא @climagic בטוויטר, גם @osxdaily נמצא שם!

השווה תוכן של שתי ספריות משורת הפקודה