<转>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

相关推荐