精华内容
下载资源
问答
  • 判断文件或目录是否存在
    千次阅读
    2021-07-27 11:14:39

    一、文件比较符

    -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 如果 文件是软链接,则为真
    -O filename 如果 filename存在,并且属于当前用户,则为真
    -G filename 如果 filename存在,并且属于当前用户组,则为真
    -nt 判断file1是否比file2新  ["/data/file1" -nt"/data/file2" ]
    -ot 判断file1是否比file2旧  ["/data/file1" -ot"/data/file2" ]
    

    二、常用例子

    1、文件夹不存在则创建

    if [ ! -d "/data/" ];then
      mkdir /data
    else
      echo "文件夹已经存在"
    fi
    

    2、文件存在则删除

    if [ ! -f "/data/filename" ];then
      echo "文件不存在"
    else
      rm -f /data/filename
    fi
    

    3、判断文件是否存在,不存在则创建

    # -f 参数判断 $file 是否存在
    if [ ! -f "$file" ]; then
      touch "$file"
    fi
    

    4、文件夹是否存在

    if [ -d "/data/" ];then
      echo "文件夹存在"
    else
      echo "文件夹不存在"
    fi
    
    更多相关内容
  • if判断文件或目录是否存在以及文件覆盖与备份 一、简介 本文主要记录一波linux中shell脚本用if语句判断文件或目录是否存在,并且以jenkins自动发布覆盖项目和历史版本记录为例,让大家跟好的理解shell脚本的灵活...

                     if判断文件或目录是否存在以及文件覆盖与备份

    一、简介

              本文主要记录一波linux中shell脚本用if语句判断文件或目录是否存在,并且以jenkins自动发布覆盖项目和历史版本记录为例,让大家跟好的理解shell脚本的灵活。

    二、基础知识

      1.脚本注意要点:

    • .sh结尾的开头要加下面这段代码
    #!bin/sh
    • Bash脚本中的赋值符号“=”前后不能有空格   
    •  " [ " 与" ] " 前后要加上空格 
    • 每一行结尾换号智能是\n 不能是\r\n因为windows换行会有\r bash是解析不了的
    • 每个关键字后面面都要加上空格

    下面框出来的红点部位就是空格

    如果换行符多了就会报下面的错

    可以用notepad++全部替换为空

       2.shell中if-else 、if-elseif-else的语法

    (其中elif就是elseif)

    如果不需要elseif 和else  可以删除 ,跟其他语言一样elseif可以有多个

    #!bin/sh
    flag=-1
    if [ "$flag" == 0 ];
    then 
     echo "if语句"
    elif [ "$flag" -gt 0 ];
    then 
     echo "elseif语句" 
    else 
     echo "else语句执行"
    fi 

       3.常见的if 条件判断

           1.通用判断
              -eq 或 ==      等于             
              -ne                不等于            
              -gt                 大于               
              -ge                大于等于        
              -lt                  小于                
              -le                 小于等于      

      
    #!bin/sh
    flag=0
    if [ "$flag" -eq 0 ];
    then 
     echo "if语句"
    fi 
    if [ "$flag" == 0 ];
    then 
     echo "if语句"
    fi 
    if [ "$flag" -ne 0 ];
    then 
     echo "if语句"
    fi 
    
    #或者用双括号
    
    if (("$flag" == 0))
    then 
     echo "if语句"
    fi 
    

    使用符号判断   注意:需要双括号如:(("$a" < 0))

    <        小于
    <=      小于等于
    >        大于(需要双括号)
    >=      大于等于(需要双括号)

    #!bin/sh
    a=-1
    
    if (("$a" < 0))
    then 
     echo "if语句2"
    fi 

     如果要详细了解可以看菜鸟教程上面的介绍:

    https://www.runoob.com/linux/linux-shell-process-control.html

     

     

    三、文件和目录判断

        1. 判断文件和目录

    -x 判断文件是否存在并且是否具有可执行权限 
    -d  判断目录是否存在 
    -f 判断文件是否存在 
    -n  判断一个变量是否为空

    #!bin/sh
    
    path="/xxx/xxx"  
    fileName="/xxx/xxx/xxx.txt/"  
      
    #这里的-x 参数判断$path是否存在并且是否具有可执行权限  
    if [  -x "$path"]; 
    then  
     echo "$path"  
    fi  
    # 这里加! 就是否的意思在此处也就是没有可执行权
    if [ ! -x "$path"]; 
    then  
     echo "$path"  
    fi  
    #这里的-d 参数判断$path是否存在  
    if [  -d "$path"]; 
    then  
     echo "$path"  
    fi  
      
    #这里的-f参数判断$fileName是否存在  
    if [  -f "$fileName" ]; 
    then  
      echo "$fileName"  
    fi  
      
    #其他参数还有-n,-n是判断一个变量是否是否有值  
    if [  -n "$myVar" ]; 
    then  
      echo "$myVar is empty"  
      exit 0  
    fi  
      

    四、脚本示例

       1.判断指定文件是否存在,如果存在则备份并删除

     

    #要备份且删除的文件
    fileName="xxxx/xxx.xxx"
    #将旧版本放到目录指定目录下 以当前日期作为文件夹名,以原文件名+当前时间名作为历史版本文件名
    bacfilePath="xxxxx/bac/$(date '+%Y%m%d')"
    #查看是否有重复的文件
    if [  -f "$fileName" ]; then
     if [ ! -d "$bacfilePath" ]; then
        # mkdir "$bacfilePath"
    	echo $bacfilePath 
     fi 
     mv -fb "$fileName" "$fileName.$(date '+%Y%m%d%H%M%S')"
    fi 

        2.升级版,根据传入的参数备份文件

    (本脚本用于jenkins 自动部署时脚本,后期会不全jenkins 远程部署等博文,可持续关注本人)

     运行命令:

    [root@localhost shelltest]# bash backupJar.sh -f openapi-server.jar -p /wfq/springboot/run/
    
    
    -f 文件名
    -p 文件所在目录

      具体脚本

    #!/bin/sh
    
    #该脚本用于罗格朗测试环境jenkins自动发布  判断是上传的jar是否已存在某个目录 如果有则将该版本移动到指定历史版本文件夹中
    
    #说明  传入参数 args: [-参数简称{,多个用逗号隔开}]\[--具体参数名{,多个用逗号隔开}] 详见 变量名
    show_usage="args: [-f,-p]\[--fileName=,--filePath=]"
    
    
    #变量名 fileName=将要发布的jar名称 filePath jar所在的目录 默认为下面该目录
    
    fileName=""
    
    filePath="/legrand/apps/legrand-cloud"
    
    # getopts :s:h表示这个命令接受2个带参数选项,分别是-h和-s
    
    GETOPT_ARGS=`getopt -o f:p: -al fileName:,filePath: -- "$@"`
    eval set -- "$GETOPT_ARGS"
    #获取参数
    while [ -n "$1" ]
    do
            case "$1" in
                    -f|--fileName) fileName=$2; shift 2;;
                    -p|--filePath) filePath=$2; shift 2;;
                    --) break ;;
                    *) echo $1,$2,$show_usage; break ;;
            esac
    done
    
    
    
    #要运行的目标jar
    runjar="$filePath/$fileName"
    #将旧版本放到目录$filePath/bac目录下 以当前日期作为文件夹名,以原文件名+当前时间名作为历史版本文件名
    bacfilePath="$filePath/bac/$(date '+%Y%m%d')"
    #查看是否有重复的文件
    if [  -f "$runjar" ]; then
     if [ ! -d "$bacfilePath" ]; then
        mkdir "$bacfilePath"
     fi
     mv -fb "$runjar" "$bacfilePath/$fileName.$(date '+%Y%m%d%H%M%S')"
    fi

     

    展开全文
  • 一、通过复制方法创建文件或目录 二、通过新建方法创建文件目录 一、通过复制方法创建文件或目录 (1)复制文件(包括空文件): @echo off echo result.jtl文件判断 SET SourceFile=G:\Jmeter\apache-jmeter...

    目录

    一、通过复制方法创建文件或目录

    二、通过新建方法创建文件和目录



    一、通过复制方法创建文件或目录

    (1)复制文件(包括空文件):

    @echo off
    echo result.jtl文件判断
    SET SourceFile=G:\Jmeter\apache-jmeter-5.0\report\backup\result.jtl
    SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
    
    if not exist %GenFile% (
            rem 复制文件result.jtl
            copy %SourceFile% %GenFile%
    		echo %GenFile% 文件不存在,已创建该文件!
        ) else (
            echo %GenFile% 文件已存在,无需创建!
        )

    (2) 复制目录(包括空目录):

    @echo off
    echo OutReport目录判断
    SET SourceFolder=G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport
    SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport\
    
    if not exist %GenFolder% (
            rem 复制目录G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport到G:\Jmeter\apache-jmeter-5.0\report路径下
    		Xcopy %SourceFolder% %GenFolder%  /s/e/h/i
    		echo %GenFolder%目录不存在,已创建该目录!
        ) else (
            rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建
    		echo %GenFolder%目录已存在,无需创建!	
        )

    (3) 复制文件和目录(包括空):

    @echo off
    echo result.jtl文件判断
    SET SourceFile=G:\Jmeter\apache-jmeter-5.0\report\backup\result.jtl
    SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
    
    if not exist %GenFile% (
            rem 复制文件result.jtl
            copy %SourceFile% %GenFile%
    		echo %GenFile% 文件不存在,已创建该文件!
        ) else (
            echo %GenFile% 文件已存在,无需创建!
        )
    
    	
    echo OutReport目录判断
    SET SourceFolder=G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport
    SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport\
    
    if not exist %GenFolder% (
            rem 复制目录G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport到G:\Jmeter\apache-jmeter-5.0\report路径下
    		Xcopy %SourceFolder% %GenFolder%  /s/e/h/i
    		echo %GenFolder%目录不存在,已创建该目录!
        ) else (
            rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建
    		echo %GenFolder%目录已存在,无需创建!	
        )


    二、通过新建方法创建文件和目录

    (1)新建文件:

    @echo off
    echo result.jtl文件判断
    SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
    
    if not exist %GenFile% (
            rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
    		rem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>%GenFile%;多的话则使用复制方法
    		type nul>%GenFile%
    		echo %GenFile%文件不存在,已创建该文件!
        ) else (
            rem 文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl已存在,无需创建
    		echo %GenFile%文件已存在,无需创建!	
        )

    (2)新建空目录:

    @echo off
    echo OutReport目录判断
    SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport
    
    if not exist %GenFolder% (
            rem 创建空目录G:\Jmeter\apache-jmeter-5.0\report\OutReport
    		rem 创建非空目录,使用复制方法
    		echo %GenFolder%目录不存在,已创建该目录!
    		md %GenFolder%
        ) else (
            rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建
    		echo 目录%GenFolder%目录已存在,无需创建!	
        )

    (3) 目录下是否存在.jtl后缀名文件判断:

    @echo off
    echo .jtl后缀名文件判断
    SET GenFile="G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl
    
    if not exist %GenFile% (
            rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtl
    		rem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>文件路径\新文件名;多的话则使用复制方法
    		type nul>G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtl
    		echo %GenFile%文件不存在,已创建该文件!
        ) else (
            rem 文件"G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl已存在,无需创建
    		echo %GenFile%文件已存在,无需创建!	
        )
    

    (4)新建文件和目录:

    @echo off
    echo result.jtl文件判断
    SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
    
    if not exist %GenFile% (
            rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
    		rem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>%GenFile%;多的话则使用复制方法
    		type nul>%GenFile%
    		echo %GenFile%文件不存在,已创建该文件!
        ) else (
            rem 文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl已存在,无需创建
    		echo %GenFile%文件已存在,无需创建!	
        )
    
    	
    echo OutReport目录判断
    SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport
    
    if not exist %GenFolder% (
            rem 创建空目录G:\Jmeter\apache-jmeter-5.0\report\OutReport
    		rem 创建非空目录,使用复制方法
    		echo %GenFolder%目录不存在,已创建该目录!
    		md %GenFolder%
        ) else (
            rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建
    		echo 目录%GenFolder%目录已存在,无需创建!	
        )
    	
    	
    echo 所有.jtl后缀名文件判断
    SET GenFile="G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl
    
    if not exist %GenFile% (
            rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtl
    		rem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>文件路径\新文件名;多的话则使用复制方法
    		type nul>G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtl
    		echo %GenFile%文件不存在,已创建该文件!
        ) else (
            rem 文件"G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl已存在,无需创建
    		echo %GenFile%文件已存在,无需创建!	
        )
    

     

    展开全文
  • 第二步,检测文件或目录是否存在: hdfs dfs -test -e 文件或目录名 第三步,查看检测结果: echo $? 若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录存在。 二、Java代码实现 import org.apache...

    一、Shell命令实现

    第一步,启动Hadoop:

    start-dfs.sh
    

    第二步,检测文件或目录是否存在:

    hdfs dfs -test -e 文件或目录名
    

    第三步,查看检测结果:

    echo $?
    

    若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。

    二、Java代码实现

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    public class HDFSFileIfExist {
    	public static void main(String[] args) {
    		try{
    		
    			//加载配置项
    			Configuration conf = new Configuration();
    			conf.set("fs.defaultFS", "hdfs://localhost:9000");
    			conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
    			
    			//创建文件系统实例
    			FileSystem fs = FileSystem.get(conf);
    			
    			//创建文件实例
    			String fileName = "文件或目录名";
    			Path file = new Path(fileName);
    			
    			//判断文件是否存在
    			if(fs.exists(file)){
    				System.out.println(fileName + "存在");
    			}else{
    				System.out.println(fileName + "不存在");
    			}
    			
    			//关闭文件系统
    			fs.close();
    			
    		}catch (Exception e){
    			e.printStackTrace();
    		}
    	}
    }
    
    展开全文
  • Python判断文件或目录是否存在(exists)、判断是否目录(文件夹)、删除、创建目录(文件夹) (1)需要注意单个目录和多个目录的命令不同, 单个目录命令简单,简写,os.mkdir(test_path), os.rmdir(test_path),...
  • 在编写shell脚本时,通常最开始的工作是对环境的检查,比如检查某一文件或目录是否存在,并执行相应的操作等。下面的shell脚本实现的功能是,先检查某一目录是否存在,不存在的话就创建此目录存在的话就cd到这个...
  • Linux shell判断文件或目录是否存在

    万次阅读 2017-10-13 17:05:17
    #!/bin/sh myPath="/var/log/httpd/" ...#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then  mkdir "$myPath" fi #这里的-d 参数判断$myPath是否存在 if
  • 1、判断文件夹是否存在,不存在则创建:(java相关视频教程推荐:java视频教程)File folder = new File("d:\test1\test2");if (!folder.exists() && !folder.isDirectory()) {folder.mkdirs();System.out....
  • C语言判断文件或文件夹是否存在

    千次阅读 2022-02-09 10:22:50
    汇总网上搜集的资料,总结了下述几种方法用于判断文件或者文件夹是否存在,注意每个函数的头文件引用。
  • linux下判断文件目录是否存在

    千次阅读 2021-02-13 02:04:28
    1、前言工作中涉及到文件系统,有时候需要判断文件目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件目录是否存在,方便以后查询。2、stat系列函数stat函数用来返回与文件有关的结构信息。...
  • 本文主要介绍了linux shell 中判断文件目录是否存在的方法,分享给大家-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真-f filename 如果 filename为常规文件,则为真-L filename ...
  • Linux shell判断文件或者目录是否存在

    千次阅读 2022-04-18 14:12:44
    -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则...
  • java中判断文件目录是否存在的方法

    千次阅读 2021-03-06 01:07:16
    java中判断文件目录是否存在的方法发布时间:2020-06-23 09:34:47来源:亿速云阅读:72作者:Leah本篇文章展示了java中判断文件目录是否存在的方法具体操作,代码简明扼要容易理解,绝对能让你眼前一亮,通过这篇...
  • qt 下判断文件或目录是否存在

    万次阅读 2010-09-29 17:23:00
    qt 下判断文件或目录是否存在   bool QFileInfo::exists () const Returns true if the file exists; otherwise returns false.   bool QFileInfo::isDir () const Returns ...
  • 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句...
  • Makefile 判断目录或文件是否存在

    千次阅读 2021-02-21 23:13:57
    没找Makefile自带的判断目录或文件是否存在的命令,但我们可以使用shell命令。如: test = $(shell if [ -d $(DIR_TEST) ]; then echo "exist"; else echo "noexist"; fi) $(info $(test)) all: $(TARGET) $(OBJD...
  • Linux 判断文件或文件夹是否存在

    千次阅读 2022-04-07 18:12:00
    Linux 判断文件或文件夹是否存在 shell脚本执行 1、文件存在则删除 if [ -f "filename" ];then rm -d filename fi 或者 if [ ! -f "/data/filename" ];then echo "文件不存在" else rm -d /data/filename fi 2、...
  • 1、前言  工作中涉及到文件系统,有时候需要判断文件目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件目录是否存在,方便以后查询。 2、stat系列函数  stat函数
  • 需求:判断Unity的Resouces目录下,是否存在名为“Test1.jpg”的文件 思路:用"文件是否存在"方法判断——File.Exists(路径字符串) 代码: using System.Collections; using System.Collections.Generic; using ...
  • java判断文件或文件夹是否存在

    千次阅读 2021-11-10 17:31:38
    1、判断文件是否存在 2、判断文件夹是否存在 2.1、file.mkdirs()创建出的文件夹 2.2、 file.getParentFile().mkdirs(); 1、判断文件是否存在 import java.io.File; public class sss { public static void ...
  • python 判断 hdfs 文件 目录 是否存在

    千次阅读 2020-09-07 11:30:42
    很简单 filexistchk = "hadoop dfs -test -e " + hdfs_path + ";echo $?" filexistchk_output = subprocess.Popen(filexistchk, shell=True, stdout=subprocess.PIPE).communicate() if '1' not in str...
  • 常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、...
  • 一、python判断文件和文件夹是否存在、创建文件夹>>> import os>>> os.path.exists('d:/assist')True>>> os.path.exists('d:/assist/getTeacherList.py')True>>> os.path.is...
  • file.exists():判断File是否存在 file1.mkdirs():创建File所在的多层文件夹 file2.createNewFile():创建File文件 import java.io.File; public class Test { public static void main(String[] args) throws ...
  • Shell中判断文件目录是否存在 并新建 1、选择要判断内容属性 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果...
  • Java判断文件、文件夹是否存在

    万次阅读 2021-02-28 19:06:56
    一、判断文件是否存在,不存在则创建File file = new File("d:\\test.txt");if (!file.exists()) {try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}System.out.println("文件已创建");} ...
  • Shell中判断文件,目录是否存在

    千次阅读 2020-01-15 16:58:19
    具体每个选项对应的判断内容: -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为...
  • shell脚本判断多个目录是否存在

    千次阅读 2019-10-25 09:22:51
    1.判断多个目录是否存在 #!/bin/bash if [ -d "/data_docker" -o -d "/opt/dpkg_soft" ]; then echo oooooooooooo fi 2.判断多个文件是否存在 #!/bin/bash if [ -f "database1.sql" -a -f "database2.sql" -a ...
  • 批处理判断指定目录是否存在文件

    千次阅读 2020-10-14 22:49:28
    @echo off set fnum=0 for %%a in (*.*) do ( set fnum=1 ) echo %fnum%

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,171,647
精华内容 468,658
关键字:

判断文件或目录是否存在