我在目录树下存档了很多项目,其中一些项目中包含.git文件夹。
我想要做的是递归地将这些文件和目录复制到新目的地,保持当前结构 - 除了那些包含.git文件夹的目录,在这种情况下脚本应该运行一个命令(让我们说“ echo“,我稍后会更改它”,然后是文件夹名称,而不创建或复制它。
非常感谢任何帮助。
编辑:我会尝试更好地解释自己:我需要复制每个文件和目录,除了那些包含.git的文件和目录,应该跳过它们并将它们的路径传递给另一个命令。在这个例子中,应该完全跳过路径a / b / c / d及其子文件夹,并且应该使用echo显示a / b / c / d(为了简洁起见,稍后我会用不同的命令替换它): / p>
obj1
答案 0 :(得分:0)
IIUC,以下find
单行将完成工作:
find . -type d -mindepth 1 -maxdepth 1 -exec sh -c "test -e '{}/.git' && echo not copy '{}' || cp -r -- '{}' /tmp/copy-here " \;