我想做的事
我想将所有 XML 文件/source/
从/target/
我如何尝试做到这一点
rsync -avz --remove-source-files /source/*.xml /target/
我正在使用 Symfony 进程/控制台组件作为 rsync 的包装器。
- 流程组件 ^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 传递给 symfony 包装的 rsync?有没有另一种方法可以使用控制台来实现这一点?