我想确定两个项目共有哪些文件,然后将这些文件复制到第三个空项目中。比较应该是递归的,并且需要考虑文件内容和路径。
我需要复制公用文件,保留其路径。
我这样做是为了将两个项目中的通用代码提取到一个通用文件夹中。
这是一个反应项目。我愿意使用任何工具,库或语言来完成此任务。我在想有一种使用现有工具来完成此任务的简单方法。
我尝试过使用Meld,它可以识别常见文件,但无法复制它们。
答案 0 :(得分:1)
shell和unix核心utils既好又有趣:
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