我的编程空间,编程开发者的网络收藏夹
学习永远不晚

shell脚本怎样判断文件是否存在

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

shell脚本怎样判断文件是否存在

目录
  • shell脚本判断文件是否存在
  • shell脚本之文件是否存在、权限校验
    • 判断目录是否存在
    • 判断文件是否存在
    • 判断目录/文件是否存在
    • 判断文件权限
    • 判断文件是否属于当前用户
    • 判断文件是否与当前用户相同用户组
    • 比较文件之间是否为新建
    • 复合条件判断文件
  • 总结

    shell脚本判断文件是否存在

    在进行linux系统相关应用程序开发时,少不了要书写一些shell脚本,有时候要用到判断文件或者目录是否存在的脚本,本文笔者做一下笔记,已备后查。

    shell判断文件是否存在的脚本如下:

    //[ 与 ] 的前后必须有空格符
    if [ -f /path/file.ext ] 
    then 
         echo "The file exist"
    else
         echo "The file doesn't exist"
    fi
    //判断某链接是否存在
    if [ -L /path/link ] 
    then 
        echo "The link exist"
    else
        echo "The link doesn't exist"
    fi

    其实shell对于文件册测试有好几种选项开关

    现在例举如下:

    表达式测试含义
    -a filepathfile exists. all files type
    -b filepathfile exists and is a block special file.
    -c filepathfile exists and is a character special file.
    -d filepathfile exists and is a directory.
    -e filepathfile exists (等同于 -a).
    -f filepathfile exists and is a regular file.
    -g filepathfile exists and has its setgid(2) bit set.
    -G filepathfile exists and has the same group ID as this process.
    -k filepathfile exists and has its sticky bit set.
    -L filepathfile exists and is a symbolic link.
    -n filepathstring length is not zero.
    -o filepathNamed option is set on.
    -O filepathfile exists and is owned by the user ID of this process.
    -p filepatfile exists and is a first in, first out (FIFO) special file ornamed pipe.
    -r filepathfile exists and is readable by the current process.
    -s filepathfile exists and has a size greater than zero.
    -S filepathfile exists and is a socket.
    -t filepathfile descriptor number fildes is open and associated with aterminal device.
    -u filepathfile exists and has its setuid(2) bit set.
    -w filepathfile exists and is writable by the current process.
    -x filepathfile exists and is executable by the current process.

    shell脚本之文件是否存在、权限校验

    判断目录是否存在

    #判断目录是否存在,判断非加!号, [ ! -d '/home' ]
    if [ -d '/home' ]
    then
     echo "目录/home存在=========="
    else
     echo "目录/home不存在========="
    fi

    判断文件是否存在

    #判断文件是否存在
    if [ -f '/home/docker.log' ]
    then
     echo "文件/home/docker.log存在============="
    else
     echo "文件/home/docker.log不存在==========="
    fi

    判断目录/文件是否存在

    #判断文件是否存在,目录或文件存在都成立
    if [ -e '/home' ]
    then
     echo "/home存在=============="
    else
     echo "/home不存在============"
    fi

    判断文件权限

    #检测文件是否可读 -r ,可写 -w ,可执行 -x
    if [ -r '/home/script/file.log' ]
    then
     echo "文件/home/script/file.log存在并可读=============="
    else
     echo "目录/home/script/file.log不存在或不可读=================="
    fi

    判断文件是否属于当前用户

    #检测文件是否属于当前用户
    file_path=/home/script/file.log
    if [ -O $file_path ]
    then
     echo "文件$file_path属于当前用户================="
    else
     echo "文件$file_path不属于当前用户==============="
    fi

    判断文件是否与当前用户相同用户组

    #检测文件是否存在,并且默认组与当前用户相同
    file_path=/home/script/file.log
    if [ -G $file_path ]
    then
     echo "文件$file_path所属组与当前用户相同================="
    else
     echo "文件$file_path所属组与当前用户不相同================"
    fi

    比较文件之间是否为新建

    #检测文件file1是否比file2新
    file1=/home/script/file.log
    file2=/home/script/file_1.log
    if [ $file1 -nt $file2 ]
    then
     echo "文件$file1比文件$file2新=============="
    fi
    if [ $file1 -ot $file2 ]
    then
     echo "文件$file1比文件$file2旧==============="
    fi

    复合条件判断文件

    #判断既是文件 又 可读 ,用 && ,或用 ||
    file=/home/script/file.log
    if [ -f $file ] && [ -r $file ]
    then
        echo "文件$file是文件,并且可读============="
    fi

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    shell脚本怎样判断文件是否存在

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    shell脚本怎样判断文件是否存在

    目录shell脚本判断文件是否存在shell脚本之文件是否存在、权限校验判断目录是否存在判断文件是否存在判断目录/文件是否存在判断文件权限判断文件是否属于当前用户判断文件是否与当前用户相同用户组比较文件之间是否为新建复合条件判断文件总结sh
    2023-06-07

    shell脚本判断文件是否存在

    这篇文章主要介绍“shell脚本判断文件是否存在”,在日常操作中,相信很多人在shell脚本判断文件是否存在问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell脚本判断文件是否存在”的疑惑有所帮助!接下来
    2023-06-09

    判断文件是否存在的shell脚本代码

    #!/bin/sh# 判断文件是否存在# link:www.lsjlt.com# date:2013/2/28 myPath="/var/log/httpd/"myFile="/var /log/httpd/access.log" # 这里
    2022-06-04

    Shell脚本判断Apache进程是否存在

    写一个脚本检查Apache进程是否存在,若不存在则显示不存在,若存在则显示进程个数,当不等于10个时用红色字体通知管理员,并询问管理员是否启动Apache服务。#!/bin/bash#echo "$(service httpd status
    2022-06-04

    Shell脚本中怎么判断Apache进程是否存在

    Shell脚本中怎么判断Apache进程是否存在,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。写一个脚本检查Apache进程是否存在,若不存在则显示不存在,若存在则显示进程
    2023-06-09

    linux shell如何判断文件是否存在

    这篇文章主要讲解了“linux shell如何判断文件是否存在”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux shell如何判断文件是否存在”吧!在linux shell中,可以利
    2023-06-21

    怎么在linux中素shell 判断文件是否存在

    这期内容当中小编将会给大家带来有关怎么在linux中素shell 判断文件是否存在,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如果存在某文件,则删除if [ -f trials ]; then rm $
    2023-06-09

    shell中怎么判断文件目录是否存在

    这期内容当中小编将会给大家带来有关shell中怎么判断文件目录是否存在,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。核心代码#!/bin/sh myPath="/var/log/httpd/" myFil
    2023-06-09

    java判断文件是否存在

    java中可以使用file.exists()方法来检测文件是否存在,public boolean exists()测试此抽象路径名表示的文件或目录是否存在。java判断文件是否存在的方法:public static void main(String[] arg
    java判断文件是否存在
    2015-03-06

    shell脚本中怎么检查文件是否存在

    shell脚本中怎么检查文件是否存在,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. # ll -h upload.zip-rw-r--r-- 1 root root 3.3
    2023-06-17

    nodejs怎么判断文件是否存在

    在 Node.js 中,可以使用 `fs` 模块的 `exists()` 或 `existsSync()` 方法来判断文件是否存在。`exists()` 方法是一个异步方法,它接受文件路径作为参数,并在回调函数中返回一个布尔值,表示文件是否
    2023-08-09

    perl怎么判断文件是否存在

    在Perl中,可以使用-e文件测试运算符来判断文件是否存在。该运算符返回一个真值(1)如果文件存在,并返回一个假值(空字符串)如果文件不存在。以下是一个示例代码:perlmy $filename = "example.txt";if (-e
    2023-10-20

    golang怎么判断文件是否存在

    在Golang中,可以使用os.Stat()函数来判断文件是否存在。首先,导入os包:import "os"然后,使用os.Stat()函数对文件进行检查。如果文件存在,os.Stat()函数会返回一个os.FileInfo类型的值和
    2023-10-23

    linux怎么判断文件是否存在

    在Linux中,可以使用`-f`选项来判断文件是否存在。这个选项用于判断一个路径是否是一个普通文件,如果是则返回真,否则返回假。示例代码如下:```shellif [ -f 文件路径 ]; thenecho "文件存在"elseecho "
    2023-08-09

    ansible怎么判断文件是否存在

    在Ansible中,您可以使用`stat`模块来判断文件是否存在。下面是一个使用`stat`模块的示例:- name: Check if file existsstat:path: /path/to/fileregister: resul
    2023-10-24

    java怎么判断文件是否存在

    可以使用Java的文件类方法exists(),它可以测试给定的路径名表示的文件或目录是否存在。如果存在的话返回“true”,否则就是返回“false”。 (推荐学习:java课程)Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件
    java怎么判断文件是否存在
    2019-12-15

    java怎么判断是否存在文件

    要判断文件是否存在,可以使用Java的File类的exists()方法。该方法返回一个boolean值,如果文件存在,则返回true;如果文件不存在,则返回false。以下是一个示例代码:import java.io.File;publ
    2023-10-24

    编程热搜

    目录