【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的标识来判断,还要看当前用户是否真的不能操作文件

原文地址:https://www.cnblogs.com/OliverQin/p/12488131.html