test(cmd, file) -> bool | Time | Integer | nil
[permalink][rdoc]単体のファイルでファイルテストを行います。
以下は cmd として指定できる文字リテラルとその意味です。
ファイルを実効 uid で読むことができる
ファイルに実効 uid で書くことができる
ファイルを実効 uid で実行することができる
ファイルの所有者が実効 uid である
ファイルのグループ所有者が実効 gid である
ファイルを実 uid で読むことができる
ファイルに実 uid で書くことができる
ファイルを実 uid で実行することができる
ファイルの所有者が実 uid である
ファイルが存在する
ファイルサイズが 0 である
ファイルサイズが 0 でない (ファイルサイズを返す、0 ならば nil) -> Integer|nil
ファイルはプレーンファイルである
ファイルはディレクトリである
ファイルはシンボリックリンクである
ファイルは名前つきパイプ(FIFO)である
ファイルはソケットである
ファイルはブロックスペシャルファイルである
ファイルはキャラクタースペシャルファイルである
ファイルに setuid ビットがセットされている
ファイルに setgid ビットがセットされている
ファイルに sticky ビットがセットされている
ファイルの最終更新時刻を返す -> Time
ファイルの最終アクセス時刻を返す -> Time
ファイルの inode 変更時刻を返す -> Time
IO.write("testfile", "test")
test("r", "testfile") # => true
test("s", "testfile") # => 4
test("M", "testfile") # => 2018-03-31 07:38:40 +0900
test(cmd, file1, file2) -> bool
[permalink][rdoc]2ファイル間のファイルテストを行います。
以下は cmd として指定できる文字リテラルとその意味です。
ファイル1とファイル2の最終更新時刻が等しい
ファイル1の方がファイル2より最終更新時刻が新しい
ファイル1の方がファイル2より最終更新時刻が古い
ファイル1とファイル2が同一のファイルである
IO.write("testfile1", "test1")
IO.write("testfile2", "test2")
%w(= < > -).each do |e|
result = test(e, "testfile1", "testfile2")
puts "#{e}: #{result}"
end
# => =: true # => <: false # => >: false # => -: false