kind=defined
names=test
visibility=public

--- test(cmd, file) -> bool | Time | Integer | nil

単体のファイルでファイルテストを行います。

@param cmd 以下に示す数値リテラルか文字列です(文字列の場合はその先頭の文字だけをコマンドとみなします)。
@param file テストするファイルオブジェクトです。
@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

--- test(cmd, file1, file2) -> bool

２ファイル間のファイルテストを行います。

@param cmd 以下に示す数値リテラルか文字列です(文字列の場合はその先頭の文字だけをコマンドとみなします)。
@param file1 テストするファイルオブジェクトです。
@param file2 テストするファイルオブジェクトです。
@return 真偽値を返します。

以下は cmd として指定できる数値リテラルとその意味です。

: ?=
    ファイル1とファイル2の最終更新時刻が等しい
: ?>
    ファイル1の方がファイル2より最終更新時刻が新しい
: ?<
    ファイル1の方がファイル2より最終更新時刻が古い
: ?-
    ファイル1とファイル2が同一のファイルである

