Ruby 4.1 リファレンスマニュアル

module function FileUtils?.copy

cp(src, dest, preserve: nil, noop: nil, verbose: nil) -> ()[permalink][rdoc][edit]
copy(src, dest, preserve: nil, noop: nil, verbose: nil) -> ()

ファイル src を dest にコピーします。

src にファイルが一つだけ与えられた場合、 dest がディレクトリならdest/src にコピーします。 dest が既に存在ししかもディレクトリでないときは上書きします。

src にファイルが複数与えられた場合、 file1 を dest/file1 にコピー、file2 を dest/file2 にコピー、というように、ディレクトリ dest の中にファイル file1、file2、 …を同じ名前でコピーします。dest がディレクトリでない場合は例外 Errno::ENOTDIR が発生します。

[PARAM] src:
コピー元。一つの場合は文字列でも指定可能です。二つ以上指定する場合は配列で指定します。
[PARAM] dest:
コピー先のファイルかディレクトリです。
[PARAM] preserve:
真を指定すると更新時刻と、可能なら所有ユーザ・所有グループもコピーします。
[PARAM] noop:
真を指定すると実際の処理は行いません。
[PARAM] verbose:
真を指定すると詳細を出力します。
[EXCEPTION] Errno::ENOTDIR:
src が複数のファイルかつ、dest がディレクトリでない場合に発生します。
require 'fileutils'
FileUtils.cp 'eval.c', 'eval.c.org'
FileUtils.cp(['cgi.rb', 'complex.rb', 'date.rb'], '/usr/lib/ruby/1.8')
FileUtils.cp(%w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.8', verbose: true)