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
- [PARAM]
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
- [PARAM]