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目录不存在"

转载于:https://www.cnblogs.com/linux-yang153/p/9478064.html

你可能感兴趣的:(shell编程基础(一) 文件测试表达式)