文件测试运算符用于检测文件的各种状态和属性,目前支持的运算符如下:
-
-b file
:是否块设备文件 -
-c file
:是否字符设别文件 -
-d file
:是否目录 -
-f file
:是否普通文件 -
-g file
:文件是否设置了 SGID 位 -
-k file
:是否设置了粘着位 -
-p file
:文件是否有名管道 -
-u file
:文件是否设置了 SUID 位 -
-r file
:文件是否可读 -
-w file
:文件是否可写 -
-x file
:文件是否可执行 -
-s file
:文件是否为空(文件大小是否大于0),不为空返回 true。 -
-e file
:文件(包括目录)是否存在
要特别注意的是-s file
判断文件是否为空时,不为空才返回true。
变量 file 表示文件 /User/chenshuyi/hello.sh
,它的大小为 52 字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性:
#!/bin/bash
# author:陈树义
# site:http://www.shuyi.me
file="/User/chenshuyi/hello.sh"
if [ -r $file ]
then
echo "文件可读"
else
echo "文件不可读"
fi
if [ -w $file ]
then
echo "文件可写"
else
echo "文件不可写"
fi
if [ -x $file ]
then
echo "文件可执行"
else
echo "文件不可执行"
fi
if [ -f $file ]
then
echo "文件为普通文件"
else
echo "文件为特殊文件"
fi
if [ -d $file ]
then
echo "文件是个目录"
else
echo "文件不是个目录"
fi
if [ -s $file ]
then
echo "文件不为空"
else
echo "文件为空"
fi
if [ -e $file ]
then
echo "文件存在"
else
echo "文件不存在"
fi
输出结果为:
文件可读
文件可写
文件可执行
文件为普通文件
文件不是个目录
文件不为空
文件存在
原文链接:/shell/996141.html