我有一个相当简单的perl脚本,归结为
use warnings; use strict;
use File::Copy;
# ... some uninteressing things such as
# assigning variables etc ...
move($dir_from, $dir_to) or die "could not move $dir_from to $dir_to";
# ... more uninteresting things ...
如果$dir_1
和$dir_2
位于同一驱动器上,这似乎有效。但是一旦我尝试移动驱动器中的目录,它就无法工作。不幸的是,我在File::Copy
的文档中找不到与该问题有关的任何内容。实际上,文档甚至声明了
如果可能,move()将只重命名文件。除此以外, 它将文件复制到新位置并删除原始文件。
有人可以确认我的“问题”确实与我的假设有关,还是有其他原因?
答案 0 :(得分:3)
实际上,File::Copy
文档并未说明它能够移动目录。文档只是提到文件。在同一个分区上移动目录"意外地"可行,因为rename()
函数(如果源和目标位于同一分区,则优先于复制+删除)适用于文件和目录。
如果您需要一个处理目录的移动,请查看CPAN模块,如File::Copy::Recursive
或File::NCopy
。