• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    linux shell 中判断文件、目录是否存在的方法

    本文主要介绍了linux shell 中判断文件、目录是否存在的方法,分享给大家

    -e filename 如果 filename存在,则为真
    -d filename 如果 filename为目录,则为真
    -f filename 如果 filename为常规文件,则为真
    -L filename 如果 filename为符号链接,则为真
    -r filename 如果 filename可读,则为真
    -w filename 如果 filename可写,则为真
    -x filename 如果 filename可执行,则为真
    -s filename 如果文件长度不为0,则为真
    -h filename 如果文件是软链接,则为真

    常用例子

    如果存在某文件,则删除

    if [ -f trials ]; then rm ${result_path}trials; fi

    如果没有文件夹,则创建

    if [ ! -d $result_name ];then
       mkdir -p $result_name
    fi

    shell命令判断文件或文件夹是否存在,先直接看实例:

    #!/bin/sh
    
    #判断文件存在,判断是否为文件夹等
    testPath="/Volumes/MacBookProHD/Mr.Wen/08 shell命令"
    testFile="/Volumes/MacBookProHD/Mr.Wen/08 shell命令/fileWen"
    
    #判断文件夹是否存在 -d
    if [[ ! -d "$testPath" ]]; then
     echo "文件夹不存在"
    else
     echo "文件夹存在"
    fi
    
    #判断文件夹是否存在,并且具有可执行权限
    if [[ ! -x "$testFile" ]]; then
     echo "文件不存在并且没有可执行权限"
    else
     echo "文件存在并有可执行权限"
    fi
    
    #判断文件是否存在
    if [[ ! -f "$testFile" ]]; then
     echo "文件不存在"
    else
     echo "文件存在"
    fi
    
    

    在shell命令脚本编写当中,会遇到各种对文件的判断,除了以上常用的判断,还有其他的可以使用,如下:

    Conditional Logic on Files
    -a file exists.
    -b file exists and is a block special file.
    -c file exists and is a character special file.
    -d file exists and is a directory.
    -e file exists (just the same as -a).
    -f file exists and is a regular file.
    -g file exists and has its setgid(2) bit set.
    -G file exists and has the same group ID as this process.
    -k file exists and has its sticky bit set.
    -L file exists and is a symbolic link.
    -n string length is not zero.
    -o Named option is set on.
    -O file exists and is owned by the user ID of this process.
    -p file exists and is a first in, first out (FIFO) special file or
    named pipe.
    -r file exists and is readable by the current process.
    -s file exists and has a size greater than zero.
    -S file exists and is a socket.
    -t file descriptor number fildes is open and associated with a
    terminal device.
    -u file exists and has its setuid(2) bit set.
    -w file exists and is writable by the current process.
    -x file exists and is executable by the current process.
    -z string length is zero.

    shell 判断文件内容是否改变

    判断文件内容是否改变:

    1)md5值判断

    2)diff 判断

    #添加日志时间戳
    function fn_showlog()
    {
      local curtime;
      curtime=`date +"%Y%m%d-%H:%M:%S"`
      echo "$curtime ------ $1";
    }
    #判断文件内容是否一致
    function diff_file(){
      for file in `ls $1`
      do 
        if [ ! -f "$2$file" ];then
          fn_showlog "存在新增文件:$2$file"
          return 0
        else
          diff $file $2$file
          if [ $? -ne 0 ];then
            fn_showlog "文件内容发生变化:$file"
            return 0
          fi
        fi
      done
      return 1
    }
    
    
    diff_file "python*Ip" "/home/admin/tools/"
    if [ $? -eq 0 ];then
      fn_showlog "内容发生改变......"
    else 
      fn_showlog "内容未发生改变,退出脚本!"
      exit 0
    fi

    到此这篇关于linux shell 中判断文件、目录是否存在的方法的文章就介绍到这了,更多相关linux shell判断文件存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Linux下如何高效切换目录的方法
    • Linux shell 提取文件名和目录名的方法
    • 如何更改Linux(CentOS)系统下的MySQL数据库目录位置
    • Linux系统中查找正在运行的nginx目录
    • Linux 中批量提取文件夹下所有目录及文件名称
    • 详解Linux查找目录下的按时间过滤的文件
    • 在 Linux 中不使用 CD 命令进入目录/文件夹的方法
    • Linux目录切换实现代码案例
    上一篇:linux shell中“.” 和 “./”执行的区别详解
    下一篇:shell 使用指定的分割符来分割字符串的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    linux shell 中判断文件、目录是否存在的方法 linux,shell,中,判断,文件,