如何在Unix中执行批量svn mv

use*_*149 3 svn

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

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

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

编辑:使用bash

Sea*_*ght 5

假设您正在使用bash:

for x in `find -name *.xml`; do
   echo svn move $x forbar/`basename $x`;
done
Run Code Online (Sandbox Code Playgroud)

一旦您对输出正确感到满意,请从第二行中删除"echo".


geo*_*car 5

您可以使用该-execdir选项.这源文件所在的目录运行(这避免了目录链接的竞争条件等).

find -name '*.xml' -execdir svn move {} `pwd`/foobar/{} \;
Run Code Online (Sandbox Code Playgroud)