zoukankan      html  css  js  c++  java
  • Linux中判断hdfs文件是否存在

    在Linux文件系统中,我们可以使用下面shell脚本判断某个文件是否存在:

    # 这里的-f参数判断$file是否存在 
    if [ ! -f "$file" ]; then
      echo "文件不存在!"
    fi
    

    但是我们想判断hdfs上某个文件是否存在咋办呢?Hadoop内置提供了判断某个文件是否存在的命令:

    在linux文件系统中,我们可以使用下面shell脚本判断:

    if [ ! -f "$file" ];then

       echo "文件不存在"

    fi

    同样hadoop内置了提供了判断某个文件是否存在的命令

    hadoop fs -test 

    -d 判断<path>是否是目录

    -e 判断<path>是否存在

    -f 判断<path>是否是个文件

    -s 判断内容是否大于0bytes ,大于0为真

    -z 判断内容是否等于0bytes,为0真

    从上面的输出可以看出,我们可以使用test命令来判断某个文件是否存在。如果文件存在,则这个命令将返回0,反之返回1.

    [iteblog@www.iteblog.com ~]$ hadoop fs -test -e /path/not/exist
    [iteblog@www.iteblog.com ~]$ echo $?
    1
     
    [iteblog@www.iteblog.com ~]$ hadoop fs -test -e /path/exist
    [iteblog@www.iteblog.com ~]$ echo $?
    0
    

    所以,上代码:

    hadoop fs -test -e /path/exist
    if [ $? -eq 0 ] ;then 
        echo 'exist' 
    else 
        echo 'Error! path is not exist' 
    fi 
    

    除此之外,还可以判断某个文件是否是文件夹、是否是文件、某个文件的大小是否大于0或者等于0。

    hadoop fs -test -d /path/exist
    if [ $? -eq 0 ] ;then 
        echo 'Is a directory' 
    else 
        echo 'Is not a directory' 
    fi
      
    hadoop fs -test -f /path/exist
    if [ $? -eq 0 ] ;then 
        echo 'Is a file' 
    else 
        echo 'Is not a file' 
    fi
     
    hadoop fs -test -s /path/exist
    if [ $? -eq 0 ] ;then 
        echo 'Is greater than zero bytes in size' 
    else 
        echo 'Is not greater than zero bytes in size' 
    fi
     
     
    hadoop fs -test -z /path/exist
    if [ $? -eq 0 ] ;then 
        echo 'Is zero bytes in size.' 
    else 
        echo 'Is not zero bytes in size. '
    fi
     
     
  • 相关阅读:
    Oracle 临时事务表 全局临时表_global temporary table
    js String Trim函数
    解决Navicat Error: Missing required libmysql_d.dll
    win8双屏敲代码
    条件注释判断浏览器
    Eclipse 中Alt+/快捷键失效的解决办法。
    解决java写入xml报错org.w3c.dom.DOMException:DOM002 Illeg
    用解释计划评估创建索引后对单表查询效率的影响
    在某文件夹查找以日期命名的目录,如果早已目标时间则删除之
    (Python)正则表达式进行匹配
  • 原文地址:https://www.cnblogs.com/yang520ming/p/12886660.html
Copyright © 2011-2022 走看看