测试标志 |
代表意义 |
文件名、文件类型 |
-e |
该文件名是否存在 |
-f |
该文件名是否存在且为file |
-d |
该文件名是否存在且为目录 |
-b |
该文件名是否存在且为一个block |
-c |
该文件名是否存在且为一个character device设备 |
-S |
该文件名是否存在且为一个socket文件 |
-p |
该文件名是否存在且为一个FIFO(pipe)文件 |
-L |
该文件名是否存在且为一个连接文件 |
文件权限检测 |
-r |
检测文件名是否存在且具有“可读”权限 |
-w |
检测文件名是否存在且具有“可写”权限 |
-x |
检测文件名是否存在且具有“可执行”权限 |
-u |
检测文件名是否存在且具有“SUID”权限 |
-g |
检测文件名是否存在且具有“SGID”权限 |
-k |
检测文件名是否存在且具有“Sticky bit”权限 |
-s |
检测文件名是否存在且为“非空白文件” |
两个文件的比较 |
-nt |
(newer than)判断file1是否比file2新 |
-ot |
(older than)判断file是否比file2旧 |
-ef |
判断file1与file2是否为同一个文件,可用在判断hard link上 |
数字之间的判定 |
-eq |
equal |
-ne |
not equal |
-gt |
greater than |
-lt |
less than |
-ge |
greater than or equal |
-le |
less than or equal |
判断字符串的数据 |
test -z string |
判断字符串是否为0,若为空返回true |
test -n string |
判断字符串是否为0,若为空返回false |
test str1 = str2 |
判断str1是否等于str2,若相等,返回true |
test str1 != str2 |
判断str1是否等于str2,若相等,返回false |
多重条件的判断 |
-a |
两个条件同时成立,eg:test -r file a test -x file,同时成立返回true |
-o |
任何一个条件成立,eg:test -r file o test -x file,同时成立返回true |
! |
反向状态,如test!-x file,当file不具有x时,返回true |