Shell 检测文件的状态
在使用shell编写一些脚本时,我们少不了会遇到检查文件状态的情况。比如检查目标文件是否存在;并且是否可以读写数据等。
这里我们结合中括号,检查文件的状态。
一、文件夹是否存在
if [ !-d "/tmp/dirname" ];then
makedir /tmp/dirname
else
pass
fi
二、文件是否存在
if [ !-f "/tmp/filename" ];then
touch /tmp/filename
else
echo "file does not exist"
fi
三、其他检测状态的参数
- -e 判断对象是否存在
- -L 判断对象是否存在,并且为符号链接
- -h 判断对象是否存在,并且为软链接
- -s 判断对象是否存在,并且长度不为0
- -r 判断对象是否存在,并且可读
- -w 判断对象是否存在,并且可写
- -x 判断对象是否存在,并且可执行
- -O 判断对象是否存在,并且属于当前用户
- -G 判断对象是否存在,并且属于当前用户组
四、补充说明
1、-nt 判断file1是否比file2新
[ "/data/file1" -nt "/data/file2" ]
2、-ot 判断file1是否比file2旧
[ "/data/file1" -ot "/data/file2" ]