两个目录的不同文件

Wie*_*zny 7 linux directory patch diff

我想比较两个目录。我尝试了 diff,但它包含文件内的更改。我想要的只是这样的

file a is just in /A 
file b is missing in /A 
file c changed
directory d is missing in /A 
directory e is just in /A
Run Code Online (Sandbox Code Playgroud)

我认为这在进行完整文件修补时很常见,但我不知道一个好的解决方案。

Riz*_*sim 17

您正在寻找

diff -rq (dir1) (dir2)
Run Code Online (Sandbox Code Playgroud)

概念证明:

#!/bin/sh
#create our test
mkdir -p /tmp/a/b
echo "test" >> /tmp/a/c
mkdir -p /tmp/a/d/e
echo "blah" >> /tmp/a/d/e/f #only exists here
mkdir -p /tmp/q/b
echo "testing" >> /tmp/q/c #/tmp/a/c shouldnt match
mkdir -p /tmp/q/d/e
echo "blah" >> /tmp/q/d/e/g #only exists here
diff -rq /tmp/a /tmp/q
Run Code Online (Sandbox Code Playgroud)

结果是 :

Files /tmp/a/c and /tmp/q/c differ
Only in /tmp/a/d/e: f
Only in /tmp/q/d/e: g
Run Code Online (Sandbox Code Playgroud)


djh*_*ell 7

您只需要包含-q标志以使其简短:

# diff -q dir1 dir2
Files dir1/both and dir2/both differ
Only in dir1/: one
Only in dir2:/ two
Run Code Online (Sandbox Code Playgroud)

  • 如果您需要子目录,还要添加 -r 标志。 (2认同)