1、按照文件类型进行判断
测试选项 | 作用 |
---|
-b 文件 | 判断该文件是否存在,并且是否为块设备文件(是块设备文件返回真) |
-c 文件 | 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真) |
-d 文件 | 判断该文件是否存在,并且是否为目录文件(是目录为真) |
-e 文件 | 判断该文件是否存在(存在为真) |
-f 文件 | 判断该文件是否存在,并且是否为普通文件(是普通文件为真) |
-L 文件 | 判断该文件是否存在,并且是否为符号链接文件(是符号链接文件为真) |
-p文件 | 判断该文件是否存在,并且是否为管道文件(是管道文件为真) |
-s 文件 | 判断该文件是否存在,并且是否为非空(非空为真) |
-S 文件 | 判断该文件是否存在,并且是否为套接字文件(是套接字文件为真) |
例子:
[root@localhost ~]
true
[root@localhost ~]
true
[root@localhost ~]
false
[root@localhost ~]
true
[root@localhost ~]
true
2、按照文件权限进行判断
测试选项 | 作用 |
---|
|
-r 文件 | 判断该文件是否存在,并且该文件对于当前用户是否拥有读权限(有读权限为真) |
-w 文件 | 判断该文件是否存在,并且该文件对于当前用户是否拥有写权限(有写权限为真) |
-x 文件 | 判断该文件是否存在,并且该文件对于当前用户是否拥有执行权限(有执行权限为真) |
-u 文件 | 判断该文件是否存在,并且该文件对于当前用户是否拥有SUID权限(有SUID权限为真) |
-g 文件 | 判断该文件是否存在,并且该文件对于当前用户是否拥有SGID权限(有SGID权限为真) |
-k 文件 | 判断该文件是否存在,并且该文件对于当前用户是否拥有SBIT权限(有SBIT权限为真) |
例子:
[root@localhost tmp]
total 0
-rw------- 1 root root 0 Jun 2 14:22 test.log
[root@localhost tmp]
true
[user1@localhost ~]$ [ -r /tmp/test.log ] && echo 'true' || echo 'false'
false
3、两个文件之间进行比较
测试选项 | 作用 |
---|
文件1 -nt 文件2 | 判断文件1的修改时间是否比文件2的新(如果新则为真) |
文件1 -ot 文件2 | 判断文件1的修改时间是否比文件2的旧(如果旧则为真) |
文件1 -ef 文件2 | 判断文件1与文件2的Inode号是否一致,可以理解为判断是否为同一个文件。对于用于判断硬链接。 |
例子:
[root@localhost tmp]
[root@localhost tmp]
total 0
-rw-r--r-- 2 root root 0 Jun 2 14:35 test1
-rw-r--r-- 2 root root 0 Jun 2 14:35 test2
[root@localhost tmp]
true
4、两个整数之间比较
测试选项 | 作用 |
---|
整数1 -eq 整数2 | 判断整数1是否和整数2相等(相等为真) |
整数1 -ne 整数2 | 判断整数1是否和整数2不相等(不相等为真) |
整数1 -gt 整数2 | 判断整数1是否大于整数2(大于为真) |
整数1 -lt 整数2 | 判断整数1是否小于整数2(小于为真) |
整数1 -ge 整数2 | 判断整数1是否大于等于整数2(大于等于为真) |
整数1 -le 整数2 | 判断整数1是否小于等于整数2(小于等于为真) |
例子:
[root@localhost tmp]
true
[root@localhost tmp]
false
[root@localhost tmp]
false
5、字符串判断
测试选项 | 作用 |
---|
-z 字符串 | 判断字符串是否为空(为空返回真) |
-n 字符串 | 判断字符串是否为非空(非空返回真) |
字符串1 == 字符串2 | 判断字符串1是否和字符串2相等(相等返回真) |
字符串1 != 字符串2 | 判断字符串1是否和字符串2不相等(不相等返回真) |
例子:
[root@localhost ~]
[root@localhost ~]
true
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
true
6、多重条件判断
测试选项 | 作用 |
---|
判断1 -a 判断2 | 逻辑与,判断1和判断2都成立,最终结果为真 |
判断1 -o 判断2 | 逻辑或,判断1和判断2有一个成立,最终结果为真 |
! 判断 | 逻辑非,使原始判断取反 |
例子:
[root@localhost ~]
[root@localhost ~]
true