Shell 检测文件的状态

2019-04-12 0 By admin

在使用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

三、其他检测状态的参数

  1. -e 判断对象是否存在
  2. -L 判断对象是否存在,并且为符号链接
  3. -h 判断对象是否存在,并且为软链接
  4. -s 判断对象是否存在,并且长度不为0
  5. -r 判断对象是否存在,并且可读
  6. -w 判断对象是否存在,并且可写
  7. -x 判断对象是否存在,并且可执行
  8. -O 判断对象是否存在,并且属于当前用户
  9. -G 判断对象是否存在,并且属于当前用户组

四、补充说明

1、-nt 判断file1是否比file2新
[ "/data/file1" -nt "/data/file2" ]
2、-ot 判断file1是否比file2旧
[ "/data/file1" -ot "/data/file2" ]