Shell 檔案運算子

2022-03-21 23:02:31 字數 2588 閱讀 3294

檔案運算子

描述

-b file

檢測 file 是否為塊裝置檔案

-c file

檢測 file 是否為字元裝置檔案 

-d file

檢測 file 是否為目錄

-e file

檢測 file 是否存在

-f file

檢測 file 是否存在為普通檔案

-r file

檢測 file 是否可讀

-s file

檢測 file 是否為空檔案

-w file

檢測 file 是否可寫

-x file

檢測 file 是否可執行

-l file

檢測 file 是否符號鏈結

a) 檢測 /dev/sr0 是否為塊裝置檔案。

f="

/dev/sr0

"if [ -b "$f"

]then

echo

"$ is a block (buffered) special file.

"else

echo

"$ is not a block (buffered) special file.

"fi

b) 檢測 /dev/null 是否為字元裝置檔案。

f="

/dev/null

"if [ -c "$f"

]then

echo

"$ is a character (unbuffered) special file.

"else

echo

"$ is not a character (unbuffered) special file.

"fi

c) 檢測 /etc 是否為目錄。

f="

/etc

"if [ -d "$f"

]then

echo

"$ is a directory.

"else

echo

"$ is not a directory.

"fi

d) 檢測 /etc/passwd 是否為普通檔案。

f="

/etc/passwd

"if [ -f "$f"

]then

echo

"$ is a regular file.

"else

echo

"$ is not a regular file.

"fi

e) 檢測 /bin/mail 是否為符合鏈結。

f="

/bin/mail

"if [ -l "$f"

]then

echo

"$ is a symbolic link.

"else

echo

"$ is not a symbolic link.

"fi

f) 檢測 /etc/passwd 是否可讀。

f="

/etc/passwd

"if [ -r "$f"

]then

echo

"$ is readable.

"else

echo

"$ is not readable.

"fi

g) 檢測 /etc/passwd 是否可寫。

f="

/etc/passwd

"if [ -w"$f

"]then

echo

"$ is writable.

"else

echo

"$ is not writable.

"fi

h) 檢測 /etc/passwd 是否可執行。

f="

/etc/passwd

"if [ -x "$f"

]then

echo

"$ is executable.

"else

echo

"$ is not executable.

"fi

i) 檢測 /etc/passwd 是否存在。

f="

/etc/passwd

"if [ -e "$f"

]then

echo

"$ is existent.

"else

echo

"$ is nonexistent.

"fi

j) 檢測 /etc/passwd 是否為空。

f="

/etc/passwd

"if [ -s "$f"

]then

echo

"$ is empty.

"else

echo

"$ is not empty.

"fi

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

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

shell檔案比較運算子

檔案比較運算子 e filename 如果 filename存在,則為真 e var log syslog d filename 如果 filename為目錄,則為真 d tmp mydir f filename 如果 filename為常規檔案,則為真 f usr bin grep l filen...

shell檔案比較運算子

e filename 如果filename 存在,則為真 e var log syslog d filename 如果filename 為目錄,則為真 d tmp mydir f filename 如果filename 為常規檔案,則為真 f usr bin grep l filename 如果fi...