TEST(1)

名称
test - 检查文件类型并比较值

概述
test 表达式
test
[ 表达式 ]
[ ]"
[ 选项

描述

退出状态值取决于表达式。

--help
    显示此帮助信息并退出

--version
    显示版本信息并退出

表达式被省略，则默认为假。否则，表达式可能为真或假，且以此设置返回状态。可能出现的情况如下所示：

( 表达式 )
    表达式为真

! 表达式
    表达式为假

表达式1 -a 表达式2
    表达式1 与表达式2 皆为真

表达式1 -o 表达式2
    表达式1 或表达式2 为真

-n 字符串
    字符串长度非零

STRING
    等价于 -n 字符串

-z 字符串
    字符串的长度为 0

字符串1 = 字符串2
    字符串相等

字符串1 != 字符串2
    字符串不相等

整数1 -eq 整数2
    整数1 与整数2 相等

整数1 -ge 整数2
    整数1 大于或等于整数2

整数1 -gt 整数2
    整数1 大于整数2

整数1 -le 整数2
    整数1 小于或等于整数2

整数1 -lt 整数2
    整数1 小于整数2

整数1 -ne 整数2
    整数1 和整数2 不相等

文件1 -ef 文件2
    文件1 和文件2 拥有相同的设备编号与 inode 编号

文件1 -nt 文件2
    文件1 在修改时间上新于文件2

文件1 -ot 文件2
    文件1 比文件2 更旧

-b 文件
    文件存在且为块特殊文件

-c 文件
    文件存在且为字符特殊文件

-d 文件
    文件存在且为目录

-e 文件
    文件存在

-f 文件
    文件存在且为普通文件

-g 文件
    文件存在且被设置了 set-group-ID 位

-g 文件
    文件存在且为有效组ID 所有

-h 文件
    文件存在且为一个符号链接（与 -L 相同）

-k 文件
    文件存在且被设置粘着位

-L 文件
    指定文件存在且为符号链接（等效于-h）

-N 文件
    指定文件存在且自上次读取以来已被修改

-O 文件
    指定文件存在且为有效用户 ID 所拥有

-p 文件
    指定文件存在且为命名管道

-r 文件
    文件存在且用户具有读权限

-s 文件
    指定文件存在且其大小大于零

-S 文件
    文件存在且为套接字

-t FD
    文件描述符 FD 在某个终端打开

-u 文件
    文件存在且被设置了 set-user-ID 位

-w 文件
    文件存在且用户具有写权限

-x 文件
    文件存在且用户具有执行（或搜索）权限

除了 -h 和 -L，所有与指定文件相关的测试都跟随符号链接。请注意在 shell 中圆括号需要被转义（例如，使用反斜线）。也可以把“-l 字符串”作为指定整数，其值为该字符串的长度。

注：二元运算符 -a 和 -o 存在固有的歧义问题。请使用 "test EXPR1 &&test EXPR2" 或 "test EXPR1 || test EXPR2" 作为替代。

注记：[ 接受 --help 和 --version 选项，但是 test 并非如此。test 将它们与其它非空字符串同等看待。

注意：您的 shell 可能内置了自己的 test 和/或 [ 程序版本，它会覆盖这里所提及的相应版本。请查阅您的 shell 文档获知它所支持的选项。

作者
由 Kevin Braunsdorf 和 Matthew Bradburn 编写。

报告错误
GNU coreutils 的在线帮助： <https://www.gnu.org/software/coreutils/>
请向 <https://translationproject.org/team/zh_CN.html> 报告翻译错误。

版权
Copyright © 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

参见
access(2)

完整文档请见： <https://www.gnu.org/software/coreutils/test[>
或者在本地使用： info '(coreutils) test invocation'