我想确定两个项目共有哪些文件并将这些文件复制到第三个空项目中。比较应该是递归的,并且需要考虑文件内容和路径。我需要复制公共文件,保留它们的路径。我这样做是为了将两个项目中的公共代码提取到一个公共文件夹中。这是一个反应项目。我愿意使用任何工具、库或语言来实现这一点。我想象有一种直接的方法可以使用现有工具来完成此任务。我曾尝试使用 meld 来识别常见文件,但无法复制它们。
1 回答

噜噜哒
TA贡献1784条经验 获得超7个赞
shell 和 unix 核心实用程序对此非常有用:
dir1=<path to first project directory>
dir2=<absolute path to second project directory>
outdir=<path to new merged project directory>
# copy dir1 to outdir
cp -a $dir1 $outdir
# compare to files in dir2
cd $outdir
find . -type f | while read path; do
# path exists in dir2 and is not different, else delete it
[ -e "$dir2/$path" ] && diff "$path" "$dir2/$path" >/dev/null || rm -f $path
done
添加回答
举报
0/150
提交
取消