使用文件列表来复制并移动到perl中的新目录

时间:2010-12-28 03:39:06

标签: perl batch-file copy

我在txt文件中有一个文件名列表。它们与我拥有的pdfs相关。我想将该列表中列出的实际pdf文件复制到目录中。需要复制的文件也包含在不同的子目录中。使用perl最简单的方法是什么? 谢谢!

2 个答案:

答案 0 :(得分:3)

我建议您阅读perlfaq5:How do I copy a file

在那之后,它不应该太难;未经测试的代码:

use strict;
use warnings;
use 5.010;
use autodie;
use File::Copy;
use File::Spec;

open my $files_fh, '<', '/path/to/txt';

my $files_dir       = shift // '/path/to/dir';
my $destination_dir = shift // '/path/to/dir';

while (<$files_fh>) {
    chomp;
    next unless -d (my $file = File::Spec->catfile($files_dir, $_) );

    copy($file, $file . '.cpy');
    move($file . '.cpy', $destination_dir);
    say "Copied [$file] and moved it to [$destination_dir]";
}

答案 1 :(得分:2)

我建议你使用perl File :: Copy包。

use File::Copy;
$filetobecopied = "myhtml.html.";
$newfile = "html/myhtml.html.";
copy($filetobecopied, $newfile) or die "File cannot be copied.";