Answers:
您可以使用以下diff
命令:
diff -bur folder1/ folder2/
这将输出带有统一上下文的忽略空格的递归diff:
-b
忽略空白更改并-u
给出了3行缓冲区。
diff -rub folder1/ folder2/
-bur
如果您生活在寒冷的气候中会很容易记住。
如果您只想查看不同的文件,则可以使用:
diff -qr dir_one dir_two | sort
选项“ q”将仅显示不同的文件,但不显示不同的内容,“ sort”将按字母顺序排列输出。
diff
每一对不同的文件。如果只有一个或两个文件不同而有几十个文件不同,那么一个人的方法就会大为不同。diff
一次输入数十个文件可能使我迷失在输出中!
-x PATTERN
在命令中包括以排除某些子目录。例如,diff -qr repo1 repo2 -x ".git"
将比较两个目录(repo1和repo2),但将排除各个目录的.git文件夹中的文件。
如果是GNU diff,那么您应该能够将其指向两个目录并使用-r选项。
否则,请尝试使用
for i in $(\ls -d ./dir1/*); do diff ${i} dir2; done
注意:正如丹尼斯(Dennis)在注释部分所指出的那样,您实际上不需要在ls上执行命令替换。我这样做已经很久了,以至于我几乎在自动驾驶仪上这样做,并替换了我需要获取文件列表以进行比较的命令。
我也忘记添加我执行'\ ls'来暂时禁用ls到GNU ls的别名,这样我会丢失GNU ls返回的列表中的颜色格式信息。
ls
:for i in ./dir1/*
这是一个脚本,用于显示两个文件夹中文件之间的差异。它递归地工作。更改目录1和目录2。
(search() { for i in $1/*; do [ -f "$i" ] && (diff "$1/${i##*/}" "$2/${i##*/}" || echo "files: $1/${i##*/} $2/${i##*/}"); [ -d "$i" ] && search "$1/${i##*/}" "$2/${i##*/}"; done }; search "dir1" "dir2" )
尝试这个:
diff -rq /path/to/folder1 /path/to/folder2
diff
通过下载Win32的GNU实用程序来访问该命令。