将两个项目中的通用文件提取到第三个项目中,保留目录结构

时间:2019-04-16 11:02:34

标签: python node.js bash ubuntu

我想确定两个项目共有哪些文件,然后将这些文件复制到第三个空项目中。比较应该是递归的,并且需要考虑文件内容和路径。

我需要复制公用文件,保留其路径。

我这样做是为了将两个项目中的通用代码提取到一个通用文件夹中。

这是一个反应项目。我愿意使用任何工具,库或语言来完成此任务。我在想有一种使用现有工具来完成此任务的简单方法。

我尝试过使用Meld,它可以识别常见文件,但无法复制它们。

1 个答案:

答案 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