コマンドラインから 2 つのディレクトリの内容を比較する
2 つのディレクトリの異なる内容を比較して一覧表示するには、diff などのコマンドを使用して余分な出力を得る必要はありません。代わりに comm コマンドを使用できます。開始するには、ターミナルを起動して次のコマンドを入力し、必要に応じてディレクトリ パスを調整します。
comm -3 <(ls -1 フォルダ 1) <(ls -1 フォルダ 2)
リストされる出力は、フォルダごとに異なるファイルになります。フォルダ 1 に固有のファイルは左に配置され、フォルダ 2 に固有のファイルは右に配置されます。
たとえば、「Pictures」という名前のフォルダと「OldPictures」という名前のフォルダの内容を比較するには、どちらもユーザーのダウンロード ディレクトリに保存されています。構文は次のようになります:
comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
出力は次のようになります:
$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) フォルダ-1-File.PNG フォルダ-2-ファイルコピー.PNG写真1コピー.PNG写真3.PNG
インデントに注意してください。各フォルダに固有のファイルを示しています。上記の例では、ファイル「photo 1 copy.PNG」と「photo 3.png」が右揃えになっているため、これらは OldPictures ディレクトリと Folder-1-File に固有です。PNG と Folder-2-File copy.PNG は、元の Pictures フォルダに固有です。
これは Mac OS X でうまく機能しますが、一般的な UNIX コマンドであるため、Linux やその他のバリアントでも使用できるはずです。互換性の問題が発生した場合、またはこのコマンドが不必要に複雑であることがわかった場合は、diff を使用して同じ機能を実行してみてください。
@climagic が Twitter で見つけた素晴らしいトリック、@osxdaily もそこにあります!