我们可以在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上运行;只是没有必要。)