Ruby Tips!

RubyのTipsを紹介します

ディレクトリを再帰的にコピーする

ディレクトリを再帰的にコピーするにはFileUtils.cp_rが利用できる。

require 'fileutils'

FileUtils.cp_r('src', 'dst') # srcをdstにコピーする

第3引数には以下のオプションが指定できる。

オプション 意味
:preserve 更新時刻、パーミッションをコピーする
:noop 実際の処理は行わない
:verbose 詳細を出力する
:dereference_root シンボリックリンクの指す内容をコピーする
:remove_destination コピーを実行する前にコピー先を削除する

以下は更新時刻とパーミッションをコピーし、シンボリックリンクについては内容をコピーする例である。

require 'fileutils'

FileUtils.cp_r('src', 'dst', :preserve, :dereference_root)