- test(cmd, file) -> bool | Time | Integer | nil[permalink][rdoc][edit]
- 
単体のファイルでファイルテストを行います。 - [PARAM] cmd:
- 以下に示す文字リテラル、文字列、あるいは同じ文字を表す数値です。文字列の場合はその先頭の文字だけをコマンドとみなします。
- [PARAM] file:
- テストするファイルのパスを表す文字列か IO オブジェクトを指定します。
- [RETURN]
- 下表に特に明記していないものは、真偽値を返します。
 以下は cmd として指定できる文字リテラルとその意味です。 - ?r
- 
ファイルを実効 uid で読むことができる 
- ?w
- 
ファイルに実効 uid で書くことができる 
- ?x
- 
ファイルを実効 uid で実行できる 
- ?o
- 
ファイルの所有者が実効 uid である 
- ?G
- 
ファイルのグループ所有者が実効 gid である 
- ?R
- 
ファイルを実 uid で読むことができる 
- ?W
- 
ファイルに実 uid で書くことができる 
- ?X
- 
ファイルを実 uid で実行できる 
- ?O
- 
ファイルの所有者が実 uid である 
- ?e
- 
ファイルが存在する 
- ?z
- 
ファイルサイズが 0 である 
- ?s
- 
ファイルサイズが 0 でない (ファイルサイズを返す、0 ならば nil) -> Integer|nil 
- ?f
- 
ファイルはプレーンファイルである 
- ?d
- 
ファイルはディレクトリである 
- ?l
- 
ファイルはシンボリックリンクである 
- ?p
- 
ファイルは名前つきパイプ(FIFO)である 
- ?S
- 
ファイルはソケットである 
- ?b
- 
ファイルはブロックスペシャルファイルである 
- ?c
- 
ファイルはキャラクタースペシャルファイルである 
- ?u
- 
ファイルに setuid ビットがセットされている 
- ?g
- 
ファイルに setgid ビットがセットされている 
- ?k
- 
ファイルに sticky ビットがセットされている 
- ?M
- 
ファイルの最終更新時刻を返す -> Time 
- ?A
- 
ファイルの最終アクセス時刻を返す -> Time 
- ?C
- 
ファイルの 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][edit]
- 
2ファイル間のファイルテストを行います。 - [PARAM] cmd:
- 以下に示す文字リテラル、文字列、あるいは同じ文字を表す数値です。文字列の場合はその先頭の文字だけをコマンドとみなします。
- [PARAM] file1:
- テストするファイルのパスを表す文字列か IO オブジェクトを指定します。
- [PARAM] file2:
- テストするファイルのパスを表す文字列か IO オブジェクトを指定します。
- [RETURN]
- 真偽値を返します。
 以下は 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