当我们要检测文件属性时,就需要用test这个命令
-e 该档名是否存在
-f 该档名是否存在且为档案(file)
-d 该档名是否存在且为目录
-b 该档名是否存在且为一个block device 装置
-c 该档名是否存在且为一个character device 装置
-S 该档名是否存在且为一个Socket档案
-p 该档名是否存在且为一个FIFO(pipe)档案
-L 该档名是否存在且为连接档
-r 侦测该档名是否存在且具有【可读】的权限
-w 侦测该档名是否存在且具有【可写】的权限
-x 侦测该档名是否存在且具有【可执行】的权限
-u 侦测该文件名是否存在且具有【SUID】的属性
-g 侦测该文件名是否存在且具有【SGID】的属性
-k 侦测该文件名是否存在且具有【Sticky bit】的属性
-g 侦测该档名是否存在且为【非空白档案】的属性
-nt (newer than)判断file1 是否比file2新
-ot (older than)判断file1 是否比file2旧
-ef 判断file1与file2 是否为同一档案,可用在判断hard link的判定上。主要
意义在判定,两个档案是否均指向同一个innode里!
-eq 两数值相等(equal)
-ne 两数值不等(not equal)
-gt n1 大于 n2(greater than)
-lt n1 小于 n2(less than)
-ge n1 大于等于 n2(greater than or equal)
-le n1 小于等于 n2(less than or equal)
test -z string 判定字符串是否为0?若string为空字符串,则为true
test -n string 判定字符串是否非为0?若string为空字符串,则为false。
注:-n 亦可省略
test str1=str2 判定str1是否等于str2,若相等,则回传true
test str!=str2 判定str1是否不等于str2,若相等,则回传false
-a (and)两状况同时成立!例如test -r file -a -x file,则file同时具有r
与x权限时,才回传true
-o (or)两状况任何一个成立!例如test -r file -o -x file,则file具有r
或x权限时,就可回传true
! 反相状态,如test!-x file, 当file不具有x时,回传true
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23205405/viewspace-707736/
,如需转载,请注明出处,否则将追究法律责任。