前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell 基本运算符--文件测试运算符

Shell 基本运算符--文件测试运算符

原创
作者头像
陈不成i
修改2021-06-23 17:29:40
3070
修改2021-06-23 17:29:40
举报
文章被收录于专栏:ops技术分享ops技术分享

文件测试运算符用于检测 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。

其他检查符:

-S: 判断某文件是否 socket。

-L: 检测文件是否存在并且是一个符号链接。

实例

变量 file 表示文件 /var/www/runoob/test.sh,它的大小为 100 字节,具有 rwx 权限。

下面的代码,将检测该文件的各种属性:

  1. #!/bin/bash
  2. file="/var/www/runoob/test.sh"
  3. if [ -r $file ]
  4. then
  5. echo "文件可读"
  6. else
  7. echo "文件不可读"
  8. fi
  9. if [ -w $file ]
  10. then
  11. echo "文件可写"
  12. else
  13. echo "文件不可写"
  14. fi
  15. if [ -x $file ]
  16. then
  17. echo "文件可执行"
  18. else
  19. echo "文件不可执行"
  20. fi
  21. if [ -f $file ]
  22. then
  23. echo "文件为普通文件"
  24. else
  25. echo "文件为特殊文件"
  26. fi
  27. if [ -d $file ]
  28. then
  29. echo "文件是个目录"
  30. else
  31. echo "文件不是个目录"
  32. fi
  33. if [ -s $file ]
  34. then
  35. echo "文件不为空"
  36. else
  37. echo "文件为空"
  38. fi
  39. if [ -e $file ]
  40. then
  41. echo "文件存在"
  42. else
  43. echo "文件不存在"
  44. fi

执行脚本,输出结果如下所示:

  1. 文件可读
  2. 文件可写
  3. 文件可执行
  4. 文件为普通文件
  5. 文件不是个目录
  6. 文件不为空
  7. 文件存在

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档