查看: 2133|回复: 1
打印 上一主题 下一主题

Shell运算符:Shell文件测试运算符详解

[复制链接]
跳转到指定楼层
沙发
发表于 2014-8-10 09:18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文件测试运算符文件测试运算符用于检测 Unix 文件的各种属性。

例如,变量 file 表示文件“/var/www/tutorialspoint/unix/test.sh”,它的大小为100字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性:
  1. #!/bin/sh
  2. file="/var/www/tutorialspoint/unix/test.sh"
  3. if [ -r $file ]
  4. then
  5.    echo "File has read access"
  6. else
  7.    echo "File does not have read access"
  8. fi
  9. if [ -w $file ]
  10. then
  11.    echo "File has write permission"
  12. else
  13.    echo "File does not have write permission"
  14. fi
  15. if [ -x $file ]
  16. then
  17.    echo "File has execute permission"
  18. else
  19.    echo "File does not have execute permission"
  20. fi
  21. if [ -f $file ]
  22. then
  23.    echo "File is an ordinary file"
  24. else
  25.    echo "This is sepcial file"
  26. fi
  27. if [ -d $file ]
  28. then
  29.    echo "File is a directory"
  30. else
  31.    echo "This is not a directory"
  32. fi
  33. if [ -s $file ]
  34. then
  35.    echo "File size is zero"
  36. else
  37.    echo "File size is not zero"
  38. fi
  39. if [ -e $file ]
  40. then
  41.    echo "File exists"
  42. else
  43.    echo "File does not exist"
  44. fi
复制代码




运行结果:
  1. File has read access
  2. File has write permission
  3. File has execute permission
  4. File is an ordinary file
  5. This is not a directory
  6. File size is zero
  7. File exists
复制代码

文件测试运算符列表
                                                        
  
操作符
  
说明
举例
-b  file
检测文件是否是块设备文件,如果是,则返回  true。
[ -b  $file ] 返回 false。
-c  file
检测文件是否是字符设备文件,如果是,则返回  true。
[ -b  $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。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表