你能在subversion mv命令中使用通配符或正则表达式指定文件名吗?

时间:2008-09-17 20:43:04

标签: svn

我想这样做,以便我可以说svn mv *.php php-folder/之类的东西,但它似乎没有用。它甚至可能吗?在svn book

的相关页面上没有提及它

svn mv *.php php-folder/的示例输出:
svn: Client error in parsing arguments

能够移动整个文件系统将是一个加号,所以如果给出的任何答案都可以尝试包含该能力,那就太酷了。

提前致谢!

4 个答案:

答案 0 :(得分:13)

svn move一次只能移动一个文件。你最好的选择是shell循环。在Bash中,尝试

for f in *.php ; do svn mv $f php-folder/; done

在Windows上,那是

for %f in (*.php) do svn mv %f php-folder/

编辑:从Subversion 1.5开始,svn mv接受多个源文件,因此您的原始命令可以正常工作。只有svn 1.4.x及更早版本才需要shell循环。 (当然,shell循环仍然可以使用1.5;它不是必需的。)

答案 1 :(得分:8)

不确定svn本身,但是你的shell应该能够扩展那个通配符而svn可以使用多个源参数,或者你可以使用像

这样的东西
for file in *.php; do svn mv $file php-folder/; done
例如,在bash shell中

答案 2 :(得分:1)

find . -name "*.php" -exec svn mv {} php-folder \;

答案 3 :(得分:0)

如果你在正确的检出目录中,我不明白为什么它不起作用?你的shell应该将* .php扩展为php文件列表,svn move接受多个源作为参数。