
各フォルダを繰り返して構造を比較するために、各ディレクトリとファイルの出力(テキストファイル)を一覧表示しました。
diff --brief -Nr dir1/ dir2/ > out.txt
私が得た出力はファイルの違いにのみ当てはまります。私が望む出力は、フォルダを繰り返し、フォルダが別のディレクトリにあるかどうかを指定することです。これは構造全体、ファイル、フォルダに適用されます。
cat out.txt
:
Files abc/def/xy.txt and pqr/def/xy.txt differ
Files abc/ooo/q.txt and pqr/ooo/q.txt differ
Files abc/ooo/t.txt and pqr/ooo/t.txt differ
答え1
2つのディレクトリツリーがあるとしdir_one
ますdir_two
。次に、bashを仮定すると、次のようになります。
すべてをリストする両方 dir_one
そしてdir_two
:
comm -12 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
すべて一覧表示はいに存在するdir_one
がいいえ存在するdir_two
:
comm -23 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
最後に、すべてをリストします。いいえにdir_one
、しかしはい存在地域dir_two
:
comm -13 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
答え2
私が望む出力は、フォルダを繰り返し、フォルダが別のディレクトリにあるかどうかを指定することです。
次のディレクトリ/ファイルを検討してください。
tree dir1/ dir2/
dir1/
|-- bar
|-- foo
`-- subdir_dir1
dir2/
`-- foo
このバリエーションがあなたの要件を満たしていませんかdiff
?
diff -rq dir1 dir2
Only in dir1: bar
Only in dir1: subdir_dir1