shell编程基础(一) 文件测试表达式
文件判断
-d文件,d的全拼为directory
文件存在且为目录则为真,即测试表达式成立
-f文件,f的全拼为file
文件存在且为普通文件则为真,即测试表达式成立
-e文件,e的全拼为exist
文件存在则为真,即测试表达式成立。注意区别于“-f”,-e不辨别是目录还是文件
-r文件,r的全拼为read
文件存在且可读则为真,即测试表达式成立
-s文件,s的全拼为size
文件存在且文件大小不为0则为真,即测试表达式成立
-w文件,w的全拼为write
文件存在且可写则为真,即测试表达式成立
-x文件,x的全拼为executable
文件存在且可执行则为真,即测试表达式成立
-L文件,L的全拼为link
文件存在且为链接文件则为真,即测试表达式成立
fl -nt f2,nt 的全拼为 newer than
文件fl比文件f2新则为真,即测试表达式成立。根据文件的修改时间来计算
fl -ot f2,ot 的全拼为 older than
文件fl比文件f2旧则为真,即测试表达式成立。根据文件的修改时间来计算
判断文件是否存在
[root@clsn scripts]# [ -f /etc/hosts ]
[root@clsn scripts]# echo $?
0
[root@clsn scripts]# [ -f /etc/hosts1 ]
[root@clsn scripts]# echo $?
1
判断文件是否存在,返回方式
[root@clsn scripts]# [ -f /etc/hosts ] && echo "文件存在" || echo "文件不存在"
文件存在
[root@clsn scripts]# [ -f /etc/hosts1 ] && echo "文件存在" || echo "文件不存在"
文件不存在
判断目录是否存在
[root@clsn scripts]# [ -d /tmp ] && echo "目录存在" || echo "目录不存在"
目录存在
[root@clsn scripts]# [ -d /tmp1 ] && echo "目录存在" || echo "目录不存在"
目录不存在
使用变量的方法进行判断
dir=/etc1/;[ -d $dir ] && tar zcf etc.tar.gz $dir || echo "$dir目录不存在"

浙公网安备 33010602011771号