shell 判断文件是否存在
1 相关知识
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
-ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2" ]
2 通过函数调用来快速执行
#!/bin/bash
# 检查 路径/文件夹 是否存在
is_dir_exists() {
if [ -d $1 ];then
echo "$1 exists"
return 0
else
echo "$1 not exists"
return -1
fi
}
# 检查文件是否存在
is_file_exists() {
if [ -f $1 ];then
echo "$1 exists"
return 0
else
echo "$1 not exists"
return -1
fi
}
# 检查对象是否存在
is_exists() {
if [ -e $1 ];then
echo "$1 exists"
return 0
else
echo "$1 not exists"
return -1
fi
}
dir_1="/home/xiaole/Desktop"
file_1="/home/xiaole/Desktop/file.txt"
# 传入 $1 参数
is_dir_exists $dir_1
is_file_exists $file_1
3 运行结果
