我的问题:我有两个文件夹,即~/foo
和~/bar
。两者具有相同的结构~/[foo/bar]/subdir1
,~/[foo/bar]/subdir2
并且在这些子目录中的foo
是文件夹,例如.svn/
我要将这些.svn
文件夹复制到同一位置,但在中bar
。因此,我已经尝试过:
find -name .svn -exec cp -R {} ~/bar/ \;
注意:命令已在以下位置执行~/foo/
不幸的是,此命令既不会复制任何文件,也不会给我错误消息。那么,我在做错什么,我的问题的解决方案是什么?
cd
进入foo
并运行
find . -name .svn -type d -exec sh -c 'for arg do echo cp -R "$arg" ../bar/"$arg"; done' sh {} +
它将echo
为下面的每个.svn
目录调用命令,foo
并产生如下输出:
cp -R ./subdir1/.svn ../bar/./subdir1/.svn
cp -R ./subdir2/.svn ../bar/./subdir2/.svn
验证是否正确(如果需要,可以替换../bar
为)~/bar
,然后find
再次运行命令而不使用echo
:
find . -name .svn -type d -exec sh -c 'for arg do cp -R "$arg" ../bar/"$arg"; done' sh {} +
这实际上将复制目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句