Shell - 文件运算符
文件运算符
文件运算符 | 描述 |
-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 "${f} is a block (buffered) special file." else echo "${f} is not a block (buffered) special file." fi
b) 检测 /dev/null 是否为字符设备文件。
f="/dev/null" if [ -c "$f" ] then echo "${file} is a character (unbuffered) special file." else echo "${file} is not a character (unbuffered) special file." fi
c) 检测 /etc 是否为目录。
f="/etc" if [ -d "$f" ] then echo "${file} is a directory." else echo "${file} is not a directory." fi
d) 检测 /etc/passwd 是否为普通文件。
f="/etc/passwd" if [ -f "$f" ] then echo "${file} is a regular file." else echo "${file} is not a regular file." fi
e) 检测 /bin/mail 是否为符合链接。
f="/bin/mail" if [ -L "$f" ] then echo "${file} is a symbolic link." else echo "${file} is not a symbolic link." fi
f) 检测 /etc/passwd 是否可读。
f="/etc/passwd" if [ -r "$f" ] then echo "${file} is readable." else echo "${file} is not readable." fi
g) 检测 /etc/passwd 是否可写。
f="/etc/passwd" if [ -w "$f" ] then echo "${file} is writable." else echo "${file} is not writable." fi
h) 检测 /etc/passwd 是否可执行。
f="/etc/passwd" if [ -x "$f" ] then echo "${file} is executable." else echo "${file} is not executable." fi
i) 检测 /etc/passwd 是否存在。
f="/etc/passwd" if [ -e "$f" ] then echo "${file} is existent." else echo "${file} is nonexistent." fi
j) 检测 /etc/passwd 是否为空。
f="/etc/passwd" if [ -s "$f" ] then echo "${file} is empty." else echo "${file} is not empty." fi