1.?
關(guān)于某個(gè)文件名的『類(lèi)型』偵測(cè)
(
存在與否
)
,如
?test -e filename??
-e?
該『文件名』是否存在?
(
常用
)??
-f?
該『文件名』是否為文件
(file)
?
(
常用
)??
-d?
該『文件名』是否為目錄
(directory)
?
(
常用
)??
-b?
該『文件名』是否為一個(gè)
?block device?
裝置?
??
-c?
該『文件名』是否為一個(gè)
?character device?
裝置?
??
-S?
該『文件名』是否為一個(gè)
?Socket?
文件?
??
-p?
該『文件名』是否為一個(gè)
?FIFO (pipe)?
文件?
??
-L?
該『文件名』是否為一個(gè)連結(jié)檔?
?
2.?
關(guān)于文件的權(quán)限偵測(cè),如
?test -r filename
??
-r? 偵測(cè)該文件名是否具有『可讀』的屬性? ??
-w? 偵測(cè)該文件名是否具有『可寫(xiě)』的屬性? ??
-x? 偵測(cè)該文件名是否具有『可執(zhí)行』的屬性? ??
-u? 偵測(cè)該文件名是否具有『 SUID 』的屬性? ??
-g? 偵測(cè)該文件名是否具有『 SGID 』的屬性? ??
-k? 偵測(cè)該文件名是否具有『 Sticky bit 』的屬性? ??
-s? 偵測(cè)該文件名是否為『非空白文件』? ?
-r? 偵測(cè)該文件名是否具有『可讀』的屬性? ??
-w? 偵測(cè)該文件名是否具有『可寫(xiě)』的屬性? ??
-x? 偵測(cè)該文件名是否具有『可執(zhí)行』的屬性? ??
-u? 偵測(cè)該文件名是否具有『 SUID 』的屬性? ??
-g? 偵測(cè)該文件名是否具有『 SGID 』的屬性? ??
-k? 偵測(cè)該文件名是否具有『 Sticky bit 』的屬性? ??
-s? 偵測(cè)該文件名是否為『非空白文件』? ?
3.?
兩個(gè)文件之間的比較,如:
?test file1 -nt file2??
-nt (newer than) 判斷 ?file1? 是否比 ?file2? 新 ??
-ot (older than) 判斷 ?file1? 是否比 ?file2? 舊 ??
-ef? 判斷 ?file2? 與 ?file2? 是否為同一文件,可用在判斷 ?hard link? 的判定上。 主要意義在判定,兩個(gè)文件是否均指向同一個(gè) ?inode? 哩! ?
-nt (newer than) 判斷 ?file1? 是否比 ?file2? 新 ??
-ot (older than) 判斷 ?file1? 是否比 ?file2? 舊 ??
-ef? 判斷 ?file2? 與 ?file2? 是否為同一文件,可用在判斷 ?hard link? 的判定上。 主要意義在判定,兩個(gè)文件是否均指向同一個(gè) ?inode? 哩! ?
4.?
關(guān)于兩個(gè)整數(shù)之間的判定,例如
?test n1 -eq n2??
-eq? 兩數(shù)值相等 ?(equal)??
-ne? 兩數(shù)值不等 ?(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)?
-eq? 兩數(shù)值相等 ?(equal)??
-ne? 兩數(shù)值不等 ?(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)?
5.?
判定字符串的數(shù)據(jù)
??
test -z string? 判定字符串是否為 ?0? ?若 ?string? 為空字符串,則為 ?true??
test -n string? 判定字符串是否非為 ?0? ?若 ?string? 為空字符串,則為 ?false 。 ?
注: ?-n? 亦可省略 ??
test str1 = str2? 判定 ?str1? 是否等于 ?str2? ,若相等,則回傳 ?true??
test str1 != str2? 判定 ?str1? 是否不等于 ?str2? ,若相等,則回傳 ?false?
test -z string? 判定字符串是否為 ?0? ?若 ?string? 為空字符串,則為 ?true??
test -n string? 判定字符串是否非為 ?0? ?若 ?string? 為空字符串,則為 ?false 。 ?
注: ?-n? 亦可省略 ??
test str1 = str2? 判定 ?str1? 是否等于 ?str2? ,若相等,則回傳 ?true??
test str1 != str2? 判定 ?str1? 是否不等于 ?str2? ,若相等,則回傳 ?false?
6.?
多重條件判定,例如:
?test -r filename -a -x filename??
-a (and) 兩狀況同時(shí)成立!例如 ?test -r file -a -x file ,則 ?file? 同時(shí)具有 ?r? 與 ?x? 權(quán)限時(shí),才回傳 ?true 。 ??
-o (or) 兩狀況任何一個(gè)成立!例如 ?test -r file -o -x file ,則 ?file? 具有 ?r? 或 ?x? 權(quán)限時(shí),就可回傳 ?true 。 ??
!? 反相狀態(tài),如 ?test ! -x file? ,當(dāng) ?file? 不具有 ?x? 時(shí),回傳 ?true
-a (and) 兩狀況同時(shí)成立!例如 ?test -r file -a -x file ,則 ?file? 同時(shí)具有 ?r? 與 ?x? 權(quán)限時(shí),才回傳 ?true 。 ??
-o (or) 兩狀況任何一個(gè)成立!例如 ?test -r file -o -x file ,則 ?file? 具有 ?r? 或 ?x? 權(quán)限時(shí),就可回傳 ?true 。 ??
!? 反相狀態(tài),如 ?test ! -x file? ,當(dāng) ?file? 不具有 ?x? 時(shí),回傳 ?true
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
