【shell】文件测试表达式
1.常用的文件测试操作符
常用的文件测试操作符 | 说明 |
---|---|
-d 文件,d的全称是directory | 文件存在且为目录则为真 |
-f 文件,f的全称是file | 文件存在且为普通文件则为真 |
-e 文件,e的全称是exist | 文件存在则为真,-e不辨别是文件还是目录 |
-r 文件,r的全称是read | 文件存在且可读,则为真 |
-s 文件,s的全称是size | 文件存在且文件大小不为0,则为真 |
-w 文件,w的全称是write | 文件存在且可写,则为真 |
-x 文件,x的全称是executable | 文件存在且可执行,则为真 |
-L 文件,L的全称是Link | 文件存在且为链接文件,则为真 |
f1 -nt f2,nt的全称是newer than | 文件f1比文件f2新,则为真;根据文件修改时间对比 |
f1 -ot f2,nt的全称是older than | 文件f1比文件f2旧,则为真;根据文件修改时间对比 |
如果需要获取更多信息,则使用man test
root用户的特殊性
[qinys@localhost 20200313]$ ll
----------. 1 qinys qinys 78 Mar 12 23:26 test.sh
[qinys@localhost 20200313]$ [ -w test.sh ] && echo 1 || echo 0
0
[qinys@localhost 20200313]$ su root
Password:
[root@localhost 20200313]# [ -w test.sh ] && echo 1 || echo 0
1
特别说明:
测试文件的读、写、执行权限的时候,不能只根据文件属性rwx的标识来判断,还要看当前用户是否真的不能操作文件
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!