检姿搜测文件是否存在
检测文件是否存在
等价于 -e。不推荐使用,已被弃用。
文件是常规文件(regular file),而非目录或 设备文件
文件大小不为0
文件是一个目录
文件是一个 块设备
文件是一个 字符设备
文件是一个 管道设备
文件是一个 符号链接
文件是一个符号链接
文件是一个 套接字
文件(文件描述符)与终端设备关联
该选项通常被用于 测试脚本中的 stdin [ -t 0 ] 或 stdout [ -t 1 ] 是否为终端设备
该文件对执行测试的用户可读
该文件对执行测试的用户可写
该文件可被执行测试的用户所执行
文件或目录设置了 set-group-id sgid 标志
如果一个目录设置了 sgid 标志,那么在该目录中所有的新建文件的权限组都归属于该目录的权限组,而非文件创建者的权限组。该标志对共享文件夹很有用
文件设置了 set-user-id suid 标志。
一个属于 root 的可执行文件设置了 suid 标志后,即使是一个普通用户执行也拥有 root 权限。
对需要访问硬件设备的可执行文件(例如配侍 pppd 和 cdrecord)很有用。
如果没有 suid 标志,这些可执行文件就不能被非 root 用户所调用了
设置了 suid 标志后,在权限中会显示 s
设置了粘滞位(sticky bit)
标志粘滞位是一种特殊的文件权限。如果文件设置了粘滞位,那么该文件将会被存储在高速缓存中以便快速访问。如果目录设置了该标记,那么它将会对目录的写权限进行限制,目录中只有文件的拥有者可以修改或删除文件。设置标记后你可以在权限中看到 t
如果一个用户不是设置了粘滞位目录的拥有者,但对该目录有写权限,那么他仅仅可以删除目录中他所拥有的文件。这可以防止用户不经意间删除或修改其他人的文件,例如 /tmp 文件夹。(当然目录的所有者可以删除或修改该目录下的所有文件)
执行用户是文件的拥有者
文件的组与执行用户的组相同
文件在在上次访问后被修改过了
文件 f1 比文件 f2 新
文件 f1 比文件 f2 旧
文件 f1 和文件 f2 硬链接到同一个文件
取反——对测试结果取反(如果条件缺失则返回真)
样例-1. 检测迹卖历链接是否损坏
二元比较 *** 作比较变量或者数量。注意整数和字符串比较使用的是两套运算符
整数比较
等于
不等于
-gt )
大于
大于等于
小于
小于等于
小于(使用 双圆括号)
小于等于(使用双圆括号)
大于(使用双圆括号)
大于等于(使用双圆括号)
等于
等于
和 = 同义 == 运算符在 双方括号和单方括号里表现不同
不等于
在 [[ ... ]] 结构中会进行模式匹配。
小于,按照 ASCII码 排序
注意在 [] 结构里 < 需要被 转义
大于,按照 ASCII 码排序
注意在 [] 结构里 > 需要被转义
字符串为空,即字符串长度为0
字符串非空(null)
使用 -n 时字符串必须是在括号中且被引用的
使用 ! -z 判断未引用的字符串或者直接判断 通常可行,但是非常危险
判断字符串时一定要引用
样例-2. 算术比较和字符串比较
样例-3. 测试字符串是否为空(null)
样例-4. zmore
逻辑与
exp1 -a exp2 返回真当且仅当 exp1 和 exp2 均为真
逻辑或
如果 exp1 或 exp2 为真,则 exp1 -o exp2 返回真。
以上两个 *** 作和 双方括号结构中的 Bash 比较运算符号 && 和 || 类似
测试 *** 作 -o 和 -a 可以在 test 命令或在测试括号中进行
rihad 指出:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)