如何在不使用File :: Copy :: Recursive的情况下复制Perl中的整个目录?

时间:2015-08-07 21:06:21

标签: perl recursion copy directory-structure

问题:

我的问题几乎与this one here完全相同,只是我不能使用File :: Copy :: Recursive。

约束:

我无法安装或修改现有环境,所以我坚持使用有效的方法。

use File::Copy;   # Works!
use File::Copy::Recursive # Doesn't Work :(
use File::Path # Works!

我收到此错误:(我无法解决此错误,因为我只是此系统的用户,而不是管理员或任何其他Can't locate File/Copy/Recursive.pm in @INC (@INC contains: /path/to/some/place /path/to/other/place .) at my_program.pl line 13.

情境:

如果它有帮助,我的方案是我要复制内容目录,让我们说~/my_dir到这里已存在的内容~/~/my_dir有一个子文件夹~/my_dir/sub_dir,我想复制该目录及其所有内容。

1 个答案:

答案 0 :(得分:1)

无论如何,系统的工具更好。

system('cp', '-rp', '--', $src, $dst);
die("Can't launch cp: $!\n") if $? == -1;
die("cp killed by signal ".($? & 0x7F)."\n") if $? & 0x7F;
die("cp exited with error ".($? >> 8)."\n") if $? >> 8;

缺点是缺乏便携性。如果您想要可移植性,请安装File :: Copy :: Recursive。如果您可以在计算机上安装脚本,还可以安装File :: Copy :: Recursive。