использовать список файлов для копирования и перемещения в новый каталог в Perl - PullRequest
1 голос
/ 28 декабря 2010

У меня есть список имен файлов в текстовом файле. Они соотносятся с PDF у меня. Я хотел бы скопировать фактические файлы PDF, которые перечислены в этом списке, в каталог. Файлы, которые необходимо скопировать, также содержатся в разных подкаталогах. Какой самый простой способ сделать это с помощью Perl? Спасибо!

Ответы [ 2 ]

3 голосов
/ 28 декабря 2010

Я бы рекомендовал вам прочитать perlfaq5: Как мне скопировать файл ?

После этого это не должно быть слишком сложно; Непроверенный код:

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]";
}
2 голосов
/ 28 декабря 2010

Я бы порекомендовал вам использовать пакет perl File :: Copy.

use File::Copy;
$filetobecopied = "myhtml.html.";
$newfile = "html/myhtml.html.";
copy($filetobecopied, $newfile) or die "File cannot be copied.";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...