=encoding euc-jp =head1 NAME =begin original File::Copy::Recursive - Perl extension for recursively copying files and directories =end original File::Copy::Recursive - ファイルやディレクトリを再帰的にコピーする為のPerl拡張 =head1 SYNOPSIS use File::Copy::Recursive qw(fcopy rcopy dircopy); fcopy($orig,$new[,$buf]) or die $!; rcopy($orig,$new[,$buf]) or die $!; dircopy($orig,$new[,$buf]) or die $!; =head1 DESCRIPTION =begin original This module copies directories recursively (or single files, well... singley) to an optional depth and attempts to preserve each file or directory's mode. =end original このモジュールはディレクトリを任意の深さまで再帰的に(またはたった一つのファイルを...)コピーし,各ファイルやディレクトリのモードを保持するのを試みます. =head2 EXPORT =begin original None by default. But you can export all the functions as in the example above. =end original デフォルトではなにもEXPORTしません. しかし上記例にあるようにあなたは全ての関数をエクスポートできます. =head2 fcopy() =begin original This function uses File::Copy's copy() function to copy a file but not a directory. One difference to File::Copy::copy() is that fcopy attempts to preserve the mode (see Preserving Mode below) The optional $buf in the synopsis if the same as File::Copy::copy()'s 3rd argument returns the same as File::Copy::copy() in scalar context and 1,0,0 in list context to accomidate rcopy()'s list context on regular files. (See below for more info) =end original この関数はFile::Copyのファイルをコピーするcopy()関数を使用します. ディレクトリはコピーしません. File::Copy::copy()の一つの違いはfcopyはモードを保持することを試みます(下記のPreserving Modを参照して下さい) File::Copy::copy()の第三番目の引数と同じであるならば任意の$bufの概要としては........ (詳しい情報に関して以下を見てください) =head2 dircopy() =begin original This function recursively traverses the $orig directory's structure and recursively copies it to the $new directory. $new is created if necessary. It attempts to preserve the mode (see Preserving Mode below) and by default it copies all the way down into the directory, (see Managing Depth) below. If a directory is not specified it croaks just like fcopy croaks if its not a file that is specified. =end original この関数は再帰的に$origディレクトリ構造を行ったりきたりし,再帰的に$newディレクトリにコピーする. 必要であれば$newは作成されます. モードを保持することを試み(下記のPreserving Modを参照して下さい),そしてデフォルトでディレクトリ以下に コピーされます(Managing Depthを参照して下さい) もしディレクトリが指定されない場合,それが指定されているファイルでないのならばfcopyが警告するように警告します. =begin original returns true or false, for true in scalar context it returns the number of files and directories copied, In list context it returns the number of files and directories, number of directories only, depth level traversed. =end original ファイルやディレクトリのコピーの数がスカラーコンテキストに返されたので......... 真または偽を返します, my $num_of_files_and_dirs = dircopy($orig,$new); my($num_of_files_and_dirs,$num_of_dirs,$depth_traversed) = dircopy($orig,$new); =head2 rcopy() =begin original This function will allow you to specify a file *or* directory. It calls fcopy() if its a file and dircopy() if its a directory. If you call rcopy() (or fcopy() for that matter) on a file in list context, the values will be 1,0,0 since no directories and no depth are used. This is important becasue if its a directory in list context and there is only the initial directory the return value is 1,1,1. =end original この関数では特別なファイルやディレクトリを指定するでしょう. それは,ファイルであるならばfcopy()を呼び,ディレクトリであるならばdircopy()を呼びます. もしあなたがリストコンテキストのファイルでrcopy()(またさらに言えばfcopy())を呼ぶ場合 ディレクトリがなく深さも指定されていないので値は1,0,0になるでしょう これは重要です,なぜならばリストコンテキストのディレクトリや初期ディレクトリの場合,値は1,1,1となります. =head2 Preserving Mode =begin original By default a quiet attempt is made to change the new file or directory to the mode of the old one. To turn this behavior off set $File::Copy::Recursive::KeepMode to false; =end original デフォルトで,新しいファイルもしくはディレクトリを古い方のモードにかえるのを落ち着いた試みでします. この振る舞いをOFFにする設定 $File::Copy::Recursive::KeepMode は間違っています; =head2 Managing Depth =begin original You can set the maximum depth a directory structure is recursed by setting: $File::Copy::Recursive::MaxDepth to a whole number greater than 0. =end original あなたはディレクトリ構造の最大深度を再帰処理させる設定をすることができる $File::Copy::Recursive::MaxDepth 0以上の整数を指定. =head2 SymLinks =begin original If your system supports symlinks then symlinks will be copied as symlinks instead of as the target file. Perl's symlink() is used instead of File::Copy's copy() You can customize this behavior by setting $File::Copy::Recursive::CopyLink to a true or false value. It is already set to true or false dending on your system's support of symlinks so you can check it with an if statement to see how it will behave: =end original もしあなたの利用するシステムがsymlinksをサポートしている場合,symlinksは対象ファイルの代わりにsymlinksとして コピーされるでしょう. Perlのsymlink()はFile::Copyのcopy()の代わりにしようされます. あなたは$File::Copy::Recursive::CopyLinkに真または偽の値を設定することによって振る舞いをカスタマイズすることができます. それが既に真または偽へのセットであるかあなたのシステムのsymlinksのサポートの誤ったdendingがあなたがそれをチェックすることができるそう、それが以下をどう振る舞わせるかを見るものです。 if($File::Copy::Recursive::CopyLink) { print "Symlinks will be preserved\n"; } else { print "Symlinks will not be preserved because your system does not support it\n"; } =head1 SEE ALSO L L =head1 AUTHOR Daniel Muey, L =head1 COPYRIGHT AND LICENSE Copyright 2004 by Daniel Muey This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 翻訳者 atsushi kobayashi(nekokak@users.sourceforge.jp)