Shell 文件测试运算符

文件测试运算符

文件测试运算符用于检测 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 表示文件 "test.sh" ,它的大小为 100 字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性:

#!/bin/bash

file="test.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

参考自《菜鸟教程》

原文地址:https://www.cnblogs.com/GyForever1004/p/8457028.html

时间: 2024-11-02 18:25:41

Shell 文件测试运算符的相关文章

shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样. 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. #!/bin/basha=10b=20rst=`expr 2 + 2`echo '2+2 =' ${rst} rst=`exp

shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. (3)条件表达式要放在方括号之间,变量与符号之间必须以空格隔开,命令才可以识别: (4)乘号(*)在shell中有特殊含义,作为乘法符号时,要在*前边必须加反斜杠(\)才能实现乘法运算: (5)关系运算符采用的是英文字母的缩写,等于(-eq,equal),不等于(-ne,not equ

文件测试运算符列表

文件测试运算符列表操作符 说明 举例 -b file 检测文件是否是块设备文件,如果是,则返回 true. -c file 检测文件是否是字符设备文件,如果是,则返回 true. -d file 检测文件是否是目录,如果是,则返回 true. -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true. -g file 检测文件是否设置了 SGID 位,如果是,则返回 true. -k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回

shell条件测试,运算符,选择结构,for循环结构

一.shell条件测试      man bash  //查看帮助 条件测试的命令 test 选项 文件名或目录名 或 [ 选项 文件名或目录名 ] 例: [ -e /etc/passd ] 文件状态 -f              //判断是不是文件,是文件为真 -d //判断是不是目录,是目录为真 -e //判断是不是存在,存在为真 -r //判断是否可以阅读,可以阅读为真 -w //判断是否可写,可写为真 -x //判断是否可执行,可执行为真 -l //判断是否为链接,是链接为真 数值比较

shell文件测试,菜单表示思想

---恢复内容开始--- 文件测试表达式    -f 文件存在且为普通文件     -d 文件存在且为目录文件    -s 文件大小不为0则真    -e 文件存在则真        -r 文件存且可读  #文件属性对于root有时不好用    -w 写    -x 执行    -L 存在且为链接文件    f1 -nt f2 f1比f2新则为真    f1 -ot f2 f1比f2旧则为真    这些操作符可用于[[]],[],test几乎通用,更多操作符查看man test.        

shell 6基本运算符

shell支持多种运算符: * 算数运算符 * 关系运算符 * 布尔运算符 * 字符串运算符 * 文件测试运算符 算数运算符 + 加 `expr $a + $b` 结果为 30 - 减 `expr $a - $b` 结果为 -10 * 乘 `expr $a \* $b` 结果为 200 / 除 `expr $b / $a` 结果为 2 % 取余 `expr $b % $a` 结果为 0 = 赋值 a=$b 将把变量 b 的值赋给 a == 相等,用于比较2个数字 [ $a == $b ] 返回

Shell教程5-Shell运算符

Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 例如,两个数相加: 复制纯文本新窗口 #!/bin/bash val=`expr 2 + 2` echo "Total value : $val" 运行脚本输出: Total value : 4 两点注意: 表达式和运

liunx的shell-文件测试运算符

文件测试运算符用于检测 Unix 文件的各种属性. 属性检测描述如下: 操作符 说明 举例 -b file 检测文件是否是块设备文件,如果是,则返回 true. [ -b $file ] 返回 false. -c file 检测文件是否是字符设备文件,如果是,则返回 true. [ -c $file ] 返回 false. -d file 检测文件是否是目录,如果是,则返回 true. [ -d $file ] 返回 false. -f file 检测文件是否是普通文件(既不是目录,也不是设备文

shell算术运算和文件测试及多分支if语句

shell算术运算 1.let 算术运算表达式 例如:let C=$A+$B 2.$[ 算术表达式 ] 例如:中括号和表达式之间必须有空格 3.$((算术表达式)) 例如: 4.expr 算术表达式 例如:表达式要用反引号,运算符之间要有空格 shell中的条件测试类型 整数测试 -eq等于 -ne不等于 -gt大于 -lt小于 -ge大于等于 -le小于等于 例如:判断当前系统是否有默认用户的shell是bash,如果有,显示其中的一个用户名,如果没有,就显示没有此用户 字符测试 文件测试 -