31 私は次のラインに沿って何かをしようとしています: diff `ls -1a ./dir1` `ls -1a ./dir2` しかし、それは明らかな理由で機能しません。これを達成するより良い方法はありますか(1行で)、これよりもいいですか? ls -1a ./dir1 > lsdir1 ls -1a ./dir2 > lsdir2 diff lsdir1 lsdir2 ありがとう diff filenames ls — bguiz ソース
47 あなたは近くにいました。bash では、コマンド置換ではなくプロセス置換が必要です: diff <(ls -1a ./dir1) <(ls -1a ./dir2) — イグナシオ・バスケス・アブラムス ソース ただし、プロセスの置換は必要ありません。以下の答え(superuser.com/a/228773/566289)がポイントです! — 1月D 答えがファイル名ではなくコンテンツを比較することを除いて! — 負けた
10 diff -rq dir1 dir2 -rオプションを使用して、ディレクトリツリー全体を探索し、各ツリーの比較可能なポイントで発生するサブディレクトリとファイルの違いを再帰的にチェックします。トリックは、-qオプションを使用して、行ごとの比較を抑制することです。 — fseto ソース 3 @festo:あなたはこの質問の要点を見逃してしまいました、私は実際にファイルの内容を比較したくありません、lsコマンドの出力を — 比較し +1、実際には、1つの警告で同じ出力が得られました。diff-rqは、リンクされたファイルを「そのようなファイルまたはディレクトリはありません」と報告しました。そのため、1つを追加すると、正しい、率直に言って簡単に使用できます。(たとえIVAの答えがプロセス置換のより良い「学習機会」であったとしても(> _ <) — xtian 1 これは、ファイル名を比較するよりもはるかに遅くなります。すべてのファイル全体を読み取って比較する必要があります。 — ザズ2014 当然の@Josh、それがないので、再帰的に.... — Braiam 1 @Braiam:ファイル名を再帰的にdiffしても(たとえばrsync、--dry-runオプションを使用して)、それよりもはるかに高速ですdiff -r。 — ザズ14年