Bandingkan Kandungan Dua Direktori daripada Barisan Perintah

Anonim

Untuk membandingkan dan menyenaraikan kandungan berbeza dua direktori tanpa output tambahan yang anda perolehi melalui arahan seperti diff, anda boleh menggunakan arahan comm sebagai gantinya. Untuk bermula, lancarkan Terminal dan taip arahan berikut, laraskan laluan direktori mengikut kesesuaian:

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

Output yang disenaraikan ialah fail yang berbeza dalam setiap folder, dengan fail unik pada folder1 menjajar ke kiri dan fail unik pada folder 2 menjajarkan ke kanan.

Sebagai contoh, untuk membandingkan kandungan folder yang dipanggil "Gambar" dan folder bernama "OldPictures", kedua-duanya disimpan dalam direktori muat turun pengguna, sintaksnya ialah seperti berikut:

comm -3 <(ls -1 ~/Muat Turun/Gambar) <(ls -1 ~/Muat Turun/Gambar Lama)

Output mungkin kelihatan seperti berikut:

$ comm -3 <(ls -1 ~/Muat Turun/Gambar) <(ls -1 ~/Muat Turun/Gambar Lama) Folder-1-Fail.PNG Folder -2-Salinan fail.PNG photo 1 copy.PNG photo 3.PNG

Perhatikan lekukan, yang menunjukkan anda fail yang unik untuk setiap folder. Dalam contoh di atas, fail "photo 1 copy.PNG" dan "photo 3.png" dijajarkan ke kanan, oleh itu ia unik kepada direktori OldPictures dan Folder-1-File.PNG dan Folder-2-File copy.PNG adalah unik kepada folder Pictures asal.

Ini berfungsi dengan baik dalam Mac OS X, tetapi ia adalah perintah unix generik jadi anda sepatutnya mendapati ia boleh digunakan dalam linux dan varian lain juga. Jika anda menghadapi sebarang isu keserasian atau mendapati arahan ini tidak perlu rumit, cuba gunakan diff untuk melaksanakan fungsi yang sama.

Helah hebat ditemui oleh @climagic di Twitter, @osxdaily juga ada di sana!

Bandingkan Kandungan Dua Direktori daripada Barisan Perintah