码迷,mamicode.com
首页 > 系统相关 > 详细

Linux中判断hdfs文件是否存在

时间:2020-05-14 11:33:50      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:文件的   大于   path   hdfs   参数   bytes   shell脚本   linux文件   ash   

在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
 
 

Linux中判断hdfs文件是否存在

标签:文件的   大于   path   hdfs   参数   bytes   shell脚本   linux文件   ash   

原文地址:https://www.cnblogs.com/yang520ming/p/12886660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!