<转>linux test命令详解
原链接: http://hi.baidu.com/w2341078/item/663016b92dd26c77244b0979
1.关于某个文件名的『类型』侦测(存在与否),如test-efilename
-e该『文件名』是否存在?(常用)
-f该『文件名』是否为文件(file)?(常用)
-d该『文件名』是否为目录(directory)?(常用)
-b该『文件名』是否为一个blockdevice装置?
-c该『文件名』是否为一个characterdevice装置?
-S该『文件名』是否为一个Socket文件?
-p该『文件名』是否为一个FIFO(pipe)文件?
-L该『文件名』是否为一个连结档?
2.关于文件的权限侦测,如test-rfilename
-r侦测该文件名是否具有『可读』的属性?
-w侦测该文件名是否具有『可写』的属性?
-x侦测该文件名是否具有『可执行』的属性?
-u侦测该文件名是否具有『SUID』的属性?
-g侦测该文件名是否具有『SGID』的属性?
-k侦测该文件名是否具有『Stickybit』的属性?
-s侦测该文件名是否为『非空白文件』?
3.两个文件之间的比较,如:testfile1-ntfile2
-nt(newerthan)判断file1是否比file2新
-ot(olderthan)判断file1是否比file2旧
-ef判断file2与file2是否为同一文件,可用在判断hardlink的判定上。主要意义在判定,两个文件是否均指向同一个inode哩!
4.关于两个整数之间的判定,例如testn1-eqn2
-eq两数值相等(equal)
-ne两数值不等(notequal)
-gtn1大于n2(greaterthan)
-ltn1小于n2(lessthan)
-gen1大于等于n2(greaterthanorequal)
-len1小于等于n2(lessthanorequal)
5.判定字符串的数据
test-zstring判定字符串是否为0?若string为空字符串,则为true
test-nstring判定字符串是否非为0?若string为空字符串,则为false。
注:-n亦可省略
teststr1=str2判定str1是否等于str2,若相等,则回传true
teststr1!=str2判定str1是否不等于str2,若相等,则回传false
6.多重条件判定,例如:test-rfilename-a-xfilename
-a(and)两状况同时成立!例如test-rfile-a-xfile,则file同时具有r与x权限时,才回传true。
-o(or)两状况任何一个成立!例如test-rfile-o-xfile,则file具有r或x权限时,就可回传true。
!反相状态,如test!-xfile,当file不具有x时,回传true