我们可以在subversion mv命令中使用通配符或者正则表达式指定文件名吗?

时间:2020-03-05 19:00:00  来源:igfitidea点击:

我想这样做,以便可以说出svn mv * .php php-folder /之类的东西,但是它似乎不起作用。可能吗? svn书中的相关页面上没有提及。

svn mv * .php php-folder /的示例输出:
svn:解析参数时出现客户端错误

能够移动整个文件系统将是一个加号,因此,如果给出的任何答案都可以尝试包括该功能,那将是很酷的。

提前致谢!

解决方案

回答

如果我们位于正确的检出目录中,我看不出为什么它不起作用?外壳程序应将* .php扩展到一个php文件列表,并且svn move接受多个源作为参数。

回答

不确定svn本身,但是shell应该能够扩展通配符,而svn可以接受多个源参数,或者我们可以使用类似

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

例如,在bash shell中。

回答

svn move一次只能移动一个文件。最好的选择是外壳循环。在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上运行;只是没有必要。)