diff 目录,不包括里面的一个文件夹

use*_*538 48 linux bash diff

我想我有两个内容相同的目录,但我想检查一下。

另外,我想排除两个目录中的文件夹。

我该怎么做?

STT*_*TTR 58

命令行:

diff --exclude=direxclude -r dir1 dir2
Run Code Online (Sandbox Code Playgroud)

openSUSE 12.1:好的。

sttr@linux-sgfb:/tmp> md dir1
sttr@linux-sgfb:/tmp> md dir2
sttr@linux-sgfb:/tmp> cd dir2
sttr@linux-sgfb:/tmp/dir2> md 10
sttr@linux-sgfb:/tmp/dir2> md 11
sttr@linux-sgfb:/tmp/dir2> md 12
sttr@linux-sgfb:/tmp/dir2> md 14
sttr@linux-sgfb:/tmp/dir2> cd ..
sttr@linux-sgfb:/tmp> cd dir1
sttr@linux-sgfb:/tmp/dir1> md 15
sttr@linux-sgfb:/tmp/dir1> md 11
sttr@linux-sgfb:/tmp/dir1> md 12
sttr@linux-sgfb:/tmp/dir1> md 17
sttr@linux-sgfb:/tmp/dir1> cd ..
sttr@linux-sgfb:/tmp> diff --exclude="11" -r dir1 dir2
Only in dir2: 10
Only in dir2: 14
Only in dir1: 15
Only in dir1: 17
sttr@linux-sgfb:/tmp> diff --exclude=11 -r dir1 dir2
Only in dir2: 10
Only in dir2: 14
Only in dir1: 15
Only in dir1: 17
sttr@linux-sgfb:/tmp>
Run Code Online (Sandbox Code Playgroud)

CentOS 6.3 64:好的。

[root@local tmp]# mkdir dir1
....
Run Code Online (Sandbox Code Playgroud)

Ubuntu 12.04 TLS:好的。

Ubuntu 12.04 TLS

  • @STTR 抱歉,但它没有用 (2认同)
  • `diff --exclude="direxclude" -r dir1 dir2` 变体? (2认同)
  • @STTR我知道`-xfoldername`可以用来显式列出所有不应该用于比较的文件夹。假设我想排除在“diff”中使用的所有“.git”文件,但多个目录中可能存在多个“.git”文件夹。你会怎么做? (2认同)
  • 这个答案并没有真正回答问题。它要求一种在比较时忽略两个目录中的文件夹的方法,而不是忽略与某个名称匹配的所有文件夹。 (2认同)