将文件移动到Perl中的另一个目录?

时间:2011-07-01 06:13:02

标签: perl

rename $ARGV[0], $ARGV[1] or warn "rename fails: $!\n";

当我运行./programe file.txt dir/时,它总是失败。

这里有什么问题?

3 个答案:

答案 0 :(得分:7)

从perldoc重命名:

  

此功能的行为因您而异   系统实施。例如,它通常不起作用   跨文件系统边界,即使系统mv   命令有时会补偿这一点。其他限制   包括它是否适用于目录,打开文件或预先   现有文件。检查perlport和重命名(2)   有关详细信息,请参见联机帮助页或等效系统文档。

     

对于独立于平台的“移动”功能,请查看   File :: Copy模块。

所以请改用File::Copy::move

答案 1 :(得分:5)

重命名需要完整的目标路径,而不仅仅是目录。尝试:

./progname file.txt dir/file.txt

如果你告诉它失败的错误会很好......

答案 2 :(得分:4)

rename更改了文件的名称,这不是您要执行的操作。您可能希望使用File::Copy

中的move函数