shell 檔案測試運算子

2022-02-02 02:45:01 字數 1658 閱讀 9794

檔案測試運算子用於檢測 unix 檔案的各種屬性。

操作符說明

舉例-b file

檢測檔案是否是塊裝置檔案,如果是,則返回 true。

[ -b $file ] 返回 false。

-c file

檢測檔案是否是字元裝置檔案,如果是,則返回 true。

[ -c $file ] 返回 false。

-d file

檢測檔案是否是目錄,如果是,則返回 true。

[ -d $file ] 返回 false。

-f file

檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true。

[ -f $file ] 返回 true。

-g file

檢測檔案是否設定了 sgid 位,如果是,則返回 true。

[ -g $file ] 返回 false。

-k file

檢測檔案是否設定了粘著位(sticky bit),如果是,則返回 true。

[ -k $file ] 返回 false。

-p file

檢測檔案是否是有名管道,如果是,則返回 true。

[ -p $file ] 返回 false。

-u file

檢測檔案是否設定了 suid 位,如果是,則返回 true。

[ -u $file ] 返回 false。

-r file

檢測檔案是否可讀,如果是,則返回 true。

[ -r $file ] 返回 true。

-w file

檢測檔案是否可寫,如果是,則返回 true。

[ -w $file ] 返回 true。

-x file

檢測檔案是否可執行,如果是,則返回 true。

[ -x $file ] 返回 true。

-s file

檢測檔案是否為空(檔案大小是否大於0),不為空返回 true。

[ -s $file ] 返回 true。

-e file

檢測檔案(包括目錄)是否存在,如果是,則返回 true。

[ -e $file ] 返回 true。

變數 file 表示檔案"/var/www/runoob/test.sh",它的大小為100位元組,具有 rwx 許可權。下面的**,將檢測該檔案的各種屬性:

#!/bin/bashfile="/var/www/runoob/test.sh"if[-r $file ]thenecho "檔案可讀"elseecho "檔案不可讀"fiif[-w $file ]thenecho "檔案可寫"elseecho "檔案不可寫"fiif[-x $file ]thenecho "檔案可執行"elseecho "檔案不可執行"fiif[-f $file ]thenecho "檔案為普通檔案"elseecho "檔案為特殊檔案"fiif[-d $file ]thenecho "檔案是個目錄"elseecho "檔案不是個目錄"fiif[-s $file ]thenecho "檔案不為空"elseecho "檔案為空"fiif[-e $file ]thenecho "檔案存在"elseecho "檔案不存在"fi

執行指令碼,輸出結果如下所示:

檔案可讀檔案可寫檔案可執行檔案為普通檔案檔案不是個目錄檔案不為空檔案存在

Shell 基本運算子 檔案測試運算子

檔案測試運算子用於檢測 unix 檔案的各種屬性。屬性檢測描述如下 操作符 說明 舉例 b file 檢測檔案是否是塊裝置檔案,如果是,則返回 true。b file 返回 false。c file 檢測檔案是否是字元裝置檔案,如果是,則返回 true。c file 返回 false。d file ...

shell 測試檔案狀態運算子

測試命令 test,詳細可用man test查詢 測試符號 注意只有一層中括號,中括號內左右兩側必須要有空格 test與效果都一樣,引數也都一樣1.test和引數解釋 d 目錄 s 檔案長度 0 非空 f 正規檔案 w 當前使用者可寫 root使用者無視許可權 r 可讀 x 可執行 l 軟連線檔案 ...

Shell 檔案運算子

檔案運算子 描述 b file 檢測 file 是否為塊裝置檔案 c file 檢測 file 是否為字元裝置檔案 d file 檢測 file 是否為目錄 e file 檢測 file 是否存在 f file 檢測 file 是否存在為普通檔案 r file 檢測 file 是否可讀 s file...