![如何在 perl 中递归移动文件](https://linux22.com/image/992428/%E5%A6%82%E4%BD%95%E5%9C%A8%20perl%20%E4%B8%AD%E9%80%92%E5%BD%92%E7%A7%BB%E5%8A%A8%E6%96%87%E4%BB%B6.png)
在 Perl 中如何使用系统命令将目录中的所有文件移动到上一个目录?
我尝试了以下方法,但显示错误
system('/bin/mv "test/*" , "./"');
bash: syntax error near unexpected token '/bin/mv "test/*" , "./"''
请帮忙。
答案1
Perl 有实现此目的的本机方法。亚太网络:
移动函数
复制文件然后删除原始文件。你可以根据$RemvBase管理原始文件所在的路径。
目录移动()
使用 dircopy() 复制目录然后删除原始目录。您可以根据 $RemvBase 管理原始目录所在的路径。
rmove()
与 rcopy() 类似,但调用 fmove() 或 dirmove()。
其中 1 个使用了通配符:
rmove_glob()
与 rcopy_glob() 类似,但调用 rmove() 而不是 rcopy()
其中提到...
rcopy_glob()
此函数允许您指定适合 perl 的 glob() 的模式作为第一个参数。随后 perl 的 glob() 返回的每个路径都会被 rcopy() 处理。
它返回一个数组,其项是包含每个 rcopy() 调用的返回值的数组引用。
它强制行为就好像 $File::Copy::Recursive::CPRFComp 为真一样。
从链接中的例子来看:
rmove('foo/bar/baz', '/etc/');
# "baz" is removed from foo/bar after it is successfully copied to /etc/