Perlでファイルをサブディレクトリごとコピーする

2009年2月11日
| コメント(0) | トラックバック(0) Perlでファイルをサブディレクトリごとコピーする

Perlをツール的に使っていて、コードの中で複数の階層にあるファイルをディレクトリごと再帰的にコピーしたくなった。
以前、ファイルのコピーについて何か書いた気がして調べてみたのだが、大したことが書いていなかった…。

ファイルのコピーをする場合は、File::Copyというモジュールを使うのが良い。

ということで、他の方法を調べてみたところ、「File::Copy::Recursive」を使うのがよさそうだ、というところに行き着いた。
標準モジュールではないのでcpanからインストールする必要があったが、特に問題はなくスムーズにインストールできた。

現在のディレクトリ以下のファイルを、絶対パスの「/temp」へコピーする場合は、以下のようにする。

use strict;
use warnings;
use File::Copy::Recursive qw(rcopy);
 
my $from_dir = ".";
my $to_dir   = "/temp";
 
rcopy($from_dir, $to_dir);

参考:
Daniel Muey / File-Copy-Recursive - search.cpan.org

ちなみに、「Path::Class」のオブジェクトも引数で渡すことができるようだ。
ナイス連係プレー。

use warnings;
use strict;
 
use File::Copy::Recursive qw(rcopy);
use Path::Class;
 
my $from_dir = dir(".");
my $to_dir   = dir("", "temp");
 
rcopy($from_dir, $to_dir);

トラックバック(0)

このブログ記事に対するトラックバックURL:

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2009年2月11日 01:11に書いたブログ記事です。

ひとつ前のブログ記事は「Zeitgeistをパワーアップ」です。

次のブログ記事は「モダンPerl入門が届いた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type