diffにシンボリックリンク自体を確認させたいですか?

diffにシンボリックリンク自体を確認させたいですか?

diffこのコマンドは、Linuxでファイルの違いを確認するために使用できます。私はそれを使用して2つのモジュール間の違いを確認します/tmp。両方。

ただし、両方のモジュールには、モジュールがディレクトリにコピーされたため、正しいファイルを指さない可能性があるシンボリックリンクがあります/tmp。しかし、それは問題ではありません。私が確認したいのはシンボリックリンクが同じかどうかです。

たとえば、モジュールでは、シンボリックリンクは次のようになります。

/home/test/file1

もう1つのシンボリックリンクは次のとおりです。

/etc/rc.d/whatever

diff通常、ファイルが見つからないため、エラーが発生します。しかし、私はdiffリンクが有効なファイルを指しているかどうかに関係なく、「このシンボリックリンクは同じではありません」と言いたいと思います。

Q:diffリンクをたどろうとせずにリンク自体を区別するにはどうすればよいですか?

ベストアンサー1

diffGNU 3.3以降の--no-dereferenceオプション(そしておそらく --recursive オプション)を試してみてください:

diff --recursive --no-dereference tree1root tree2root

これにより、シンボリックリンクをたどる--no-dereferenceことができません。diffそれでもターゲットを比較して違うかどうか教えてくれます。

おすすめ記事