[root@localhost ~]# [ -e test.txt ] && echo yes || echo no
yes
[root@localhost ~]# [ -e test.tx ] && echo yes || echo no
no
按照文件权限进行判断
测试选项
测试选项
作用
-r
判断该文件是否存在,并且是否具有读权限。
-w
判断该文件是否存在,并且是否具有写权限。
-x
判断该文件是否存在,并且是否具有执行权限。
-u
判断该文件是否存在,并且是否具有SUID权限。
-g
判断该文件是否存在,并且是否具有SGID权限。
-k
判断该文件是否存在,并且是否具有SBit权限。
实例
判断文件是否有读权限
[root@localhost ~]# [ -r mail ] && echo yes || echo no
yes
判断文件是否有SUID权限
[root@localhost ~]# [ -u mail ] && echo yes || echo no
no
两个文件之间进行比较
测试选项
测试选项
作用
文件1 -nt 文件2
判断文件1的修改时间是否比文件2的新。
文件1 -ot 文件2
判断文件1的修改时间是否比文件2的旧。
文件1 -ef 文件2
判断文件1是否和文件2的Inode号一致,可以用来判断硬链接。
实例
判断两个文件之间的新旧
[root@localhost ~]# [ mail -nt test.txt ] && echo yes || echo no
no
[root@localhost ~]# [ mail -ot test.txt ] && echo yes || echo no
yes
判断两个文件是否是硬链接
[root@localhost ~]# ln mail mail2
[root@localhost ~]# ls
anaconda-ks.cfg mail mail2 photo sh test.txt
[root@localhost ~]# [ mail -ef mail2 ] && echo yes || echo no
yes
两个整数之间比较
测试选项
测试选项
作用
整数1 -eq 整数2
判断相等为真
整数1 -ne 整数2
判断不等为真
整数1 -gt 整数2
判断大于为真
整数1 -lt 整数2
判断小于为真
整数1 -ge 整数2
判断大于等于为真
整数1 -le 整数2
判断小于等于为真
实例
判断两数是否相等
[root@localhost ~]# [ 20 -eq 21 ] && echo yes || echo no
no