如何在 perl 中递归移动文件

如何在 perl 中递归移动文件

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

相关内容