在 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/