如何将文件复制并移动到一个目录中?

时间:2014-02-03 20:16:38

标签: regex perl

我有一个文件,我只想复制并移动到其父目录。到目前为止我已经

foreach my $file (@DIR) {

    $file =~ s:.*/([^/]+):$1:;
    my $testfile = '';
    copy ($file, $testfile);

    move ($testfile, "../*");
    $file = $testfile;
}

2 个答案:

答案 0 :(得分:2)

您的$testfile不能是空字符串。你可以使用copy;你不需要move

use warnings;
use strict;
use File::Copy qw(copy);

my $file = 'foo.txt';
my $testfile = "../$file.copy";
copy($file, $testfile);

我不清楚为什么你使用替换,但看起来你应该使用 File::Basename basename

更新:现在我想我知道你想要什么。这会将文件/tmp/z/foo.txt复制到上面的目录:/tmp/foo.txt

use warnings;
use strict;
use File::Copy qw(copy);
use File::Basename qw(basename dirname);

my $file = '/tmp/z/foo.txt';
my $dir = dirname(dirname($file));
my $testfile = "$dir/" . basename($file);
copy($file, $testfile);

答案 1 :(得分:0)

您可以在perl中使用系统调用,因此您可以执行以下操作:

system("cp file ../");

示例和信息的一些链接:

http://perlmaven.com/running-external-programs-from-perl http://www.geom.uiuc.edu/~scheftic/PMC/UseScripts/Perl/system.html