shell|通过传入参数来判断文件是否存在

发布于:2022-10-19 ⋅ 阅读:(514) ⋅ 点赞:(0)

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 运行结果

请添加图片描述