如何在Unix中执行批量svn mv

时间:2009-02-24 12:15:59

标签: svn

我想在svn中将大量文件从一个目录批量移动到另一个目录。不幸的是,svn一次只支持移动一个文件。

基本上我想将某种类型的文件( .xml)移动到完全不同的目录,例如mv foo / bar / .xml forbar / xml

我尝试使用find和使用-exec,但是我需要为第二个参数剥离目录。有什么想法吗?

编辑:使用bash

2 个答案:

答案 0 :(得分:5)

假设你正在使用bash:

for x in `find -name *.xml`; do
   echo svn move $x forbar/`basename $x`;
done

如果您对输出正确感到满意,请从第二行中删除“echo”。

答案 1 :(得分:5)

您可以使用-execdir选项执行此操作。这将从源文件所在的目录运行(这避免了目录链接等竞争条件)。

find -name '*.xml' -execdir svn move {} `pwd`/foobar/{} \;