git --diffはLinuxローカルディレクトリに似たコマンドです。

git --diffはLinuxローカルディレクトリに似たコマンドです。

dir1に1つのファイルがあり、dir2に2つのファイルがあります。

/tmp$ ls dir1
file1
/tmp$ cat dir1/file1 
line1
line2
line3
/tmp$ ls dir2
file1  file2
/tmp$ cat dir2/file1 
line1
/tmp$ cat dir2/file2
line1
/tmp$ diff -ur dir1 dir2 | diffstat
 file1 |    2 --
 file2 |only
 2 files changed, 2 deletions(-)

dir2の新しいファイルからinsert(+)で行を印刷するコマンドを探しています。

dir2/file2に行があるので印刷したいです。

2 files changed, 2 deletions(-), 1 insertions(+)

この質問は以下に関連しています。Diffディレクトリ統計の要約(git diff -git以外のリポジトリと同様にgit diff --stat)

ありがとうございます!

答え1

-N(欠落しているファイルを空のファイルとして扱う)オプションを使用する必要がありますdiff。たとえば、

$ diff -N -u -r dir1/ dir2/ | diffstat 
 file1 |    2 --
 file2 |    1 +
 2 files changed, 1 insertion(+), 2 deletions(-)

答え2

diff彼らに直接対戦しようとしたことがありますか?diff -u dir1 dir2

GUIがある場合は(時々RPMkompareで)、参照するか、何かを見つけます。kdesdkmeldたくさんより良い。

関連情報