Порівняти вміст двох каталогів за допомогою командного рядка
Щоб порівняти та скласти список різного вмісту двох каталогів без додаткових виводів, які ви отримуєте за допомогою таких команд, як diff, замість цього ви можете використати команду comm. Щоб почати, запустіть термінал і введіть таку команду, налаштувавши відповідні шляхи до каталогу:
comm -3 <(ls -1 папка1) <(ls -1 папка2)
Виведені результати будуть різними файлами в кожній папці, причому файли, унікальні для папки 1, будуть вирівняні ліворуч, а файли, унікальні для папки 2, вирівняні праворуч.
Наприклад, щоб порівняти вміст папки під назвою «Pictures» і папки під назвою «OldPictures», обидві збережені в каталозі завантажень користувача, синтаксис буде таким:
comm -3 <(ls -1 ~/Завантаження/Зображення) <(ls -1 ~/Завантаження/Старі зображення)
Вихід може виглядати так:
$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG Folder -2-Копія файлу.PNG фото 1 копія.PNG фото 3.PNG
Зверніть увагу на відступ, який показує, які файли є унікальними для кожної папки. У наведеному вище прикладі файли «photo 1 copy.PNG» і «photo 3.png» вирівняні праворуч, тому вони є унікальними для каталогу OldPictures і Folder-1-File.PNG і копія файлу Folder-2.PNG є унікальними для оригінальної папки Pictures.
Це чудово працює в Mac OS X, але це загальна команда Unix, тому її можна використовувати також у Linux та інших варіантах. Якщо ви зіткнетеся з будь-якими проблемами сумісності або вважаєте цю команду надмірно складною, спробуйте використати diff для виконання тієї ж функції.
Чудовий трюк знайшов @climagic у Twitter, @osxdaili також там!