Shell判断文件或目录是否存在,具体如下:
一,文件比较符
1 -e filename 如果 filename存在,则为真
2 -d filename 如果 filename为目录,则为真
3 -f filename 如果 filename为常规文件,则为真
4 -L filename 如果 filename为符号链接,则为真
5 -r filename 如果 filename可读,则为真
6 -w filename 如果 filename可写,则为真
7 -x filename 如果 filename可执行,则为真
8 -s filename 如果 文件长度不为0,则为真
9 -h filename 如果 文件是软链接,则为真
10 -O filename 如果 filename存在,并且属于当前用户,则为真
11 -G filename 如果 filename存在,并且属于当前用户组,则为真
12 -nt 判断file1是否比file2新 ["/data/file1" -nt"/data/file2" ]
13 -ot 判断file1是否比file2旧 ["/data/file1" -ot"/data/file2" ]
二,常用例子
1,文件夹不存在则创建
1 if [ ! -d "/data/" ];then
2 mkdir /data
3 else
4 echo "文件夹已经存在"
5 fi
2,文件存在则删除
1 if [ ! -f "/data/filename" ];then
2 echo "文件不存在"
3 else
4 rm -f /data/filename
5 fi
3,判断文件是否存在,不存在则创建
1 # -f 参数判断 $file 是否存在
2 if [ ! -f "$file" ]; then
3 touch "$file"
4 fi
4,文件夹是否存在
1 if [ -d "/data/" ];then
2 echo "文件夹存在"
3 else
4 echo "文件夹不存在"
5 fi