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