Можете ли вы указать имена файлов с помощью подстановочных знаков или регулярных выражений в команде subversion mv? - PullRequest
5 голосов
/ 18 сентября 2008

Я хочу сделать это так, чтобы я мог сказать что-то вроде svn mv *.php php-folder/, но, похоже, это не работает. Это вообще возможно? Никаких упоминаний об этом нет на соответствующей странице в svn book .

Пример вывода svn mv *.php php-folder/:
svn: Client error in parsing arguments

Возможность перемещать всю файловую систему была бы плюсом, поэтому, если бы любой из приведенных ответов мог попытаться включить эту способность, это было бы здорово.

Заранее спасибо!

Ответы [ 4 ]

13 голосов
/ 18 сентября 2008

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 и более ранних версий. (Конечно, цикл оболочки все еще будет работать с 1.5; это просто не нужно.)

8 голосов
/ 18 сентября 2008

Не уверен насчет самого svn, но ваша оболочка должна иметь возможность расширять этот шаблон, и svn может принимать несколько исходных аргументов, или вы можете использовать что-то вроде

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

в оболочке bash, например.

1 голос
/ 20 января 2011

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

0 голосов
/ 18 сентября 2008

Если вы находитесь в правильном извлеченном каталоге, я не понимаю, почему он не будет работать? Ваша оболочка должна расширить * .php до списка файлов php, а svn move принимает несколько источников в качестве аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...