Что я хочу сделать
Я хочу переместить все XML файлы из /source/
в /target/
Как я пытаюсь сделать это
rsync -avz --remove-source-files /source/*.xml /target/
Я использую Symfony Компонент Process / Console в качестве оболочки для rsyn c.
- Компонент процесса ^ 5.0
- Symfony Консоль ^ 4.3
- PHP 7.2.
protected function execute(InputInterface $input, OutputInterface $output){
$process = new Process([
'rsync', '-azv', '--remove-source-files',
$input->getArgument('source-path'),
$input->getArgument('target-path')
]);
}
Мои проблемы
Вызов моей команды по выполнение php bin/console command:moveFiles /source/*.xml /target/
приводит к:
Too many arguments, expected arguments "command" "source-path" "target-path".
Кажется, что * в /source/*.xml сбрасывает Symfony (?) и не дает ему распознать правильное количество аргументов предоставлено. Экранирование *, как в rsync -avz --remove-source-files /source/\*.xml /target/
, приводит к:
rsync: link_stat "/source/*.xml" failed: No such file or directory (2)
Как я могу передать подстановочный знак GLOB rsyn c, завернутый в symfony? Есть ли другой способ добиться этого с помощью консоли?