CentOS 7では、2つのディレクトリの内容を再帰的に比較します。

CentOS 7では、2つのディレクトリの内容を再帰的に比較します。

アプリケーションのビルドプロセスは、CentOS 7システムでディレクトリ構造を作成します。同じサーバーの2番目の場所にアプリケーションをコピーしていくつかの変更を加えた後、ビルドプロセスを再実行しました。ビルドプロセスの結果を比較したいです。 ネストされたすべてのディレクトリと各ビルドプロセスで生成されたディレクトリのファイルを繰り返し比較するには、端末にどの特定のコマンドを入力する必要がありますか?

見たいもの:
1.)どのファイルが次のものだけDirectory1ですがいいえ2. Directory2
) どのファイルが次にDirectory2のみいいえ存在するDirectory1

Directory1イスラム/home/user/nodejs_apps/angular2_oauth_seed_app/dist
Directory2国:/home/user/nodejs_apps/angular2-esnext-starter/dist

これは私がこれまでに入力したものであり、双方向で同じ結果を提供するようです。これは間違っているようです。

[user@localhost angular2_oauth_seed_app]$ diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist /home/user/nodejs_apps/angular2-esnext-starter/dist | grep /home/user/nodejs_apps/angular2_oauth_seed_app/dist
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js.map /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js.map
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/index.html /home/user/nodejs_apps/angular2-esnext-starter/dist/client/index.html
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/vendor.js.map /home/user/nodejs_apps/angular2-esnext-starter/dist/client/vendor.js.map
[user@localhost angular2_oauth_seed_app]$ diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist  /home/user/nodejs_apps/angular2_oauth_seed_app/dist | grep /home/user/nodejs_apps/angular2-esnext-starter/dist
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js.map /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js.map
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/index.html /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/index.html
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/vendor.js.map /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/vendor.js.map
[user@localhost angular2_oauth_seed_app]$ 

答え1

表示されるファイルは両方のディレクトリに存在しますが、その他;それがまさに彼らが現れる理由です。

これらのコマンドのいずれかを実行すると、どのように考えてdiffいるかを確認できます。

例えば

diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/vendor.js.map /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/vendor.js.map

1つのファイルのみを表示し、他のファイルを表示したくない場合は、次の行で始めます。Only in

したがって、この単純なツリーでは次のようになります。

$ mkdir X Y
$ touch X/1 Y/2
$ echo a file > X/a
$ echo different > Y/a
$ echo same > X/b
$ echo same > Y/b

あるディレクトリにはあるが別のディレクトリにはないファイル、両方のディレクトリにあるが異なるファイル、同じ2つのディレクトリにあるファイルがあります。

$ diff -r X Y
Only in X: 1
Only in Y: 2
diff -r X/a Y/a
1c1
< a file
---
> different
$ 

2つの固有ファイルと変更されたファイルを報告するのがわかります。同じファイルは報告されません。

関連情報