比方说,有两个迪尔斯如何比较bash中两个director的内容?
/path1 and /path2
例如
/path1/bin
/path1/lib
/path1/...
/path2/bin
/path2/lib
/path2/...
而且需要知道如果他们是由相同的内容(文件和文件的内容的名称),如果没有差异列出了。
如何在Linux中执行此操作? 是否有一些Bash/Zsh命令?
比方说,有两个迪尔斯如何比较bash中两个director的内容?
/path1 and /path2
例如
/path1/bin
/path1/lib
/path1/...
/path2/bin
/path2/lib
/path2/...
而且需要知道如果他们是由相同的内容(文件和文件的内容的名称),如果没有差异列出了。
如何在Linux中执行此操作? 是否有一些Bash/Zsh命令?
diff命令可以显示所有两个目录之间的差异: diff -qr /path1 /path2
我使用这个脚本这样的任务:
diff <(cd "$dir1"; find . -type f -printf "%p %s\n" | sort) \
<(cd "$dir2"; find . -type f -printf "%p %s\n" | sort)
随意在<(...)
部分脚本调整您的特定需求。该版本使用find
通过打印其中找到的文件的路径和大小来打印目录内容。其他的事情当然是可能的。
不错的提示:<(...) – Bohdan 2013-05-10 00:55:54
有人建议这已经删除了,但他们的回答,不知道为什么。尝试使用rsync
:
rsync -avni /path1/ /path2
这个程序通常会同步两个文件夹,但它-n会做,而不是干运行。
什么是“a”和“b”?你也想要'-r' – 2013-05-10 00:13:48
@glenn你是对的。我的错。我更新了它。 – Lynch 2013-05-10 00:29:11