Copyright (c) 2000,2001 Minero Aoki <aamine@loveruby.net> This program is free software. You can distribute/modify this program under the terms of the Ruby License.
基本的なファイル操作を集めたモジュールです。モジュールの 別名として FileUtils::Normal も用意されています。
FileUtils#cd( dir )
FileUtils#cd( dir ) {|dir| .... }
ディレクトリ dir に移動します。 イテレータとして呼ばれた時はブロック終了後に 元のディレクトリに戻ります。
FileUtils#pwd
FileUtils#getwd
カレントディレクトリの名前を返します。 Dir.pwd と同じです。
FileUtils#newest?( newer, older1, older2, ... )
FileUtils#uptodate?( newer, older1, older2, ... )
newer が全ての older より新しいとき真。 存在しないファイルは無限に古いとみなされます。 FileUtils.newest? 'hello.o', 'hello.c', 'hello.h' or system 'make'
FileUtils#oldest?( older, newer1, newer2, ... )
older が全ての newer より古いとき真。 存在しないファイルは無限に古いとみなされます。 FileUtils.oldest? ''
FileUtils#mkdir( dir1, dir2, ... )
ディレクトリ dir1、dir2 …を作成します。 FileUtils.mkdir 'test' FileUtils.mkdir 'script', 'text'
FileUtils#mkdir_p( dir1, dir2, ... )
ディレクトリ dir1, dir2 …とその親ディレクトリを全て作成します。 例えば FileUtils.mkdir_p '/usr/local/lib/ruby' は以下の全ディレクトリを(なければ)作成します。 * /usr * /usr/local * /usr/local/bin * /usr/local/bin/ruby
FileUtils#ln( old, new )
old へのハードリンク new を作成します。 new がディレクトリなら new/old を作成します。
FileUtils#ln( file1, file2 ..., dir )
file1 へのハードリンク dir/file1、file2 へのハードリンク dir/file2 … を作成します。 FileUtils.ln '
FileUtils#ln_s( old, new )
old へのシンボリックリンク new を作成します。 File.ln_s 'somefile', 'link_to_somefile'
FileUtils#ln_s( file1, file2 ..., dir )
file1、file2 …へのシンボリックリンク dir/file1, dir/file2 …を 作成します。dir がディレクトリでない場合は例外 Errno::ENOTDIR が 発生します。
FileUtils#cp( src, dest )
ファイル src を dest にコピーします。dest がディレクトリなら dest/src にコピーします。 File.cp 'eval.c', 'eval.c.org'
FileUtils#cp( file1, file2 ..., dir )
file1 を dir/file1 にコピー、file2 を dir/file2 にコピー、 というように、ディレクトリ dir の中にファイル file1、file2 …を 同じ名前でコピーします。dir がディレクトリでない場合は例外 Errno::ENOTDIR が発生します。 File.cp 'cgi.rb', 'complex.rb', 'date.rb', '/usr/lib/ruby/1.6'
FileUtils#cp_r( src, dest )
src を dest にコピーします。src がディレクトリであったら再帰的に コピーを行います。その際 dest がディレクトリなら dest/src に コピーします。 # installing package "mylib" under the site_ruby FileUtils.cp_r 'lib/', site_ruby + '/mylib'
FileUtils#cp_r( file1, file2 ..., dir )
file1、file2 …をディレクトリ dir の中にコピーします。 file がディレクトリなら再帰的にコピーします。 FileUtils.cp_r 'mail.rb', 'field.rb', 'debug/', site_ruby + '/tmail'
FileUtils#mv( src, dest )
from を to に移動します。to がディレクトリなら to/from に 移動します。三つ以上の引数を与えたときはディレクトリ dir の 中にその他のファイルを移動します。 FileUtils.mv 'badname.rb', 'goodname.rb'
FileUtils#mv( file1, file2 ..., dir )
file1 file2 …を dir/file1 dir/file2 …に移動します。 パーティションをまたいで移動するときはコピーします。 FileUtils.mv 'junk.rb', 'dust.rb', '.trash/'
FileUtils#rm( file1, file2, ... )
file1、file2 …を消去します。 FileUtils.rm '/usr/bin/perl' # :-)
FileUtils#rm_f( file1, file2, ... )
file1、file2 …を消去します。途中でエラーが起きても無視します。 FileUtils.rm_f 'junk.rb', 'dust.rb' FileUtils.rm_f Dir['*.so'], Dir['*.o'] # nested array is OK. FileUtils.rm_f 'NotExistFile' # no error
FileUtils#rm_rf( file1, file2, ... )
ファイルまたはディレクトリ file1, file2 …を消去します。 途中でエラーが起きても無視します。 FileUtils.rm_rf '/home' # if you want to destroy the world
FileUtils#cmp( a, b )
FileUtils#identical?( a, b )
ファイル a と b の内容が同じなら真。 FileUtils.cmp 'somefile', 'somefile' #=> true FileUtils.cmp '/bin/cp', '/bin/mv' #=> maybe false.
FileUtils#install( src, dest, mode = <from's> )
from と to の内容が違うときだけ from を to にコピーします。 そのさいモードを mode に設定します。 FileUtils.install 'ruby', '/usr/local/bin/ruby', 0755 FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby'
FileUtils#chmod( mode, file1, file2, ... )
file1 file2 …のモードを mode に変えます。 mode は八進数を使って chmod 0644, fname のように与えます。 FileUtils.chmod 0644 'my.rb', 'your.rb' FileUtils.chmod 0755 'goodcmd'
FileUtils::Normal と同じメソッドが定義されており全く同じ 動作をしますが、実行前にしようとしていることを表示します。
---- fileutils_op ---- fileutils_op=( operator )
メソッドを転送するオブジェクトです。 デフォルトは FileUtils::Normal です。
---- fileutils_output ---- fileutils_output=( out )
メッセージを出力するオブジェクトです。 out は puts を持っていなければいけません。 デフォルトは stderr です。
---- fileutils_label ---- fileutils_label=( str )
メッセージの最初につくラベルです。
FileUtils::Normal と同じメソッドが定義されていますが、 実際にファイルを変更する操作は実行しません。