Perl - 将文件从DIR1移动到DIR2

时间:2016-05-18 12:23:24

标签: perl cwd

我正在尝试使用Perl脚本将文件从DIR1移动到DIR2。 我的代码编译但遗憾的是无法正常工作。 提前感谢您的建议

#!/usr/bin/perl -w
use File::Copy;
use Cwd 'abs_path';

if ( @ARGV != 2 ) {
    die "Script takes two parameters: dir1 dir2";
}

if ( -d $ARGV[0] && -d $ARGV[1]  )
{
    opendir my $DIR, $ARGV[0] or die "Read error: $!";

    while(my $file = readdir $DIR ) 
    {
        next if ($file eq "." or $file eq "..");

            my $filepath = abs_path($file);
            print "$filepath\n";

            move $filepath, $ARGV[1];
    }
    closedir $DIR;
}
else
{
    print "Both arguments must be directories!\n";
}

脚本打印DIR1中的所有文件,但移动失败。

1 个答案:

答案 0 :(得分:2)

readdir仅返回给定目录中的文件名。因此,要获得绝对文件路径,您需要预先添加$ ARGV [0]。 有关详细信息,请参阅perldoc for readdir