文章来源《鸟哥的Linux私房菜》
此文仅用学习笔记用
test
选项及参数:
-e #该文件名是否存在
-f #该文件名是否存在且为文件
-d #该文件名是否存在且为目录
-b #该文件名是否存在且为一个block device设备
-c #该文件名是否存在且为一个character device设备
-S #该文件名是否存在且为一个socket文件
-p #该文件名是否存在且为一个FIFO文件
-L #该文件是否存在且为一个连接文件
侦测权限选项:
-r #该文件名是否存在且是否有可读权限
-x #该文件名是否存在且是否有可执行权限
-w #该文件是否存在且有可写权限
-u #该文件是否存在且具有SUID属性
-g #该文件是否存在且具有SGID属性
-k #该文件是否存在且具有sticky bit属性
-s #该文件是否存在且为非空白文件
两个文件之间的比较:
test file1 -nt file2
-nt #判断file1是否比file2新
-ot #判断file1是否比file2旧
-ef #判断file1与file2是否为同一文件,判断hard link
判断两个整数:
test n1 -eq n2
-eq #是否相等
-ne #是否不等
-gt #是否n1大于n2
-lt #是否n1小于n2
-ge #是否n1大于等于n2
-le #是否n1小于等于n2
判定字串的数据:
test -z string #判定字串是否为0,若为空字串,则为true
test -n string #判定字串是否为0,若string为空字串,则为false
test str1 == str2 #判断是否相等
test str1 != str2 #判断是否不等
多重条件判定:如test -r filename -a -x filename
-a #and,同时成立,则返回true
-o #or ,其中一个成立,回传true
-! #反向状态,不具有此状态时回传true