3、 条件判断
1:按照文件类型进行判断
-b 文件 判断该文件是否存在,并且是否为块设备文件(是块设备文件为真)
-c 文件 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真)
-d 文件 判断该文件是否存在,并且是否为目录文件(是目录为真)
-e 文件 判断该文件是否存在(存在为真)
-f 文件 判断该文件是否存在,并且是否为普通文件(是普通文件为真)
-L 文件 判断该文件是否存在,并且是否为符号链接文件(是符号链接文件为真)
-p 文件 判断该文件是否存在,并且是否为管道文件(是管道文件为真)
-s 文件 判断该文件是否存在,并且是否为非空(非空为真)
-S 文件 判断该文件是否存在,并且是否为套接字文件(是套接字文件为真)
2: 按照文件权限进行判断
-r 文件 判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真)
-w 文件 判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真)
-x 文件 判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真)
-u 文件 判断该文件是否存在,并且是否该文件拥有 SUID 权限(有 SUID 权限为真)
-g 文件 判断该文件是否存在,并且是否该文件拥有 SGID 权限(有 SGID 权限为真)
-k 文件 判断该文件是否存在,并且是否该文件拥有 SBit 权限(有 SBit 权限为真)
(1)为什么要使用特殊权限?
特殊权限可以扩展系统基础权限的功能,使得linux权限更加强大灵活.
(1) 进程和文件权限的关系
进程有属主和属组;文件有属主和属组;
(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否拥有执行权限。
(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组。
(3) 进程访问文件时的权限,取决于进程的发起者。
(a) 进程的发起者,同文件的属主:则应用文件属主权限。
(b) 进程的发起者,属于文件的属组;则应用文件属组权限。
(c) 应用文件“其它”权限。
3:文件的比较
文件 1 -nt 文件 2 判断文件 1 的修改时间是否比文件 2 的新(如果新则为真)
文件 1 -ot 文件 2 判断文件 1 的修改时间是否比文件 2 的旧(如果旧则为真)
文件 1 -ef 文件 2
判断文件 1 是否和文件 2 的 Inode 号一致,可以理解为两个文件是否为同一个文件。这个判断用于判断硬链接是很好的方法
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(小于等于为真)
5: 字符串的判断
-z字符串 判断字符串是否为空(为空返回真)
-n字符串 判断字符串是否为非空(非空返回真)
字串 1==字2 判断字符串 1 是否和字符串 2 相等(相等返回真)
字串 1!=字串2 判断字符串 1 是否和字符串 2 不相等(不相等返回真
6:多重条件判断
判断 1 -a 判断 2 逻辑与,判断 1 和判断 2 都成立,最终的结果才为真
判断 1 -o 判断 2 逻辑或,判断 1 和判断 2 有一个成立,最终的结果就为真
!判断 逻辑非,使原始的判断式取反.