在linux檔案系統中,shell指令碼判斷某個檔案是否存在:
# 這裡的-f引數判斷$file是否存在 if[
! -f "$file"];
then
echo
"檔案不存在!"
fi
hadoop提供了test
命令判斷hdfs上某個檔案或目錄是否存在:
[root@node00 ~]
# hdfs dfs -help
...-test -[defsz]
: answer various questions about , with result via exit status.
-d return 0 if
is a directory.
-e return 0 if
exists.
-f return 0 if
is a file.
-s return 0 if
file
is greater than zero bytes in size.
-z return 0 if
file
is zero bytes in size, else
return 1.
...
用test
命令來判斷某個檔案或目錄是否存在。如果檔案或目錄存在,返回0;反之返回1。
[root@node00 ~]
# hdfs dfs -test -e /path/not/exist
[root@node00 ~]
# echo $?
1[root@node00 ~]
# hdfs dfs -test -e /path/exist
[root@node00 ~]
# echo $?
0[root@node00 ~]
#
那麼我們可以在shell指令碼裡面判斷hdfs上某個檔案是否存在:
#!/bin/bash
hdfs dfs -test -e /path/existif[
$? -eq 0 ]
;then
echo
'exist'
else
echo
'error! no such file or directory !'
fi...
test
命令還可以判斷:
-d
某個路徑是否是資料夾( -d);
-f
某個路徑是否是檔案( -f);
-s
某個檔案大小是否大於0;
-z
某個檔案大小等於0
#!/bin/bash
#判斷是否是資料夾
hdfs dfs -test -d /path/existif[
$? -eq 0 ]
;then
echo
'is a directory'
else
echo
'is not a directory'
fi#判斷是否是檔案
hdfs dfs -test -f /path/existif[
$? -eq 0 ]
;then
echo
'is a file'
else
echo
'is not a file'
fi#判斷檔案大小是否大於0
hdfs dfs -test -s /path/existif[
$? -eq 0 ]
;then
echo
'is greater than zero bytes in size'
else
echo
'is not greater than zero bytes in size'
fi#判斷檔案大小是否等於0
hdfs dfs -test -z /path/existif[
$? -eq 0 ]
;then
echo
'is zero bytes in size.'
else
echo
'is not zero bytes in size. '
fi
在shell中如何判斷HDFS中的檔案目錄是否存在
在linux檔案系統中,我們可以使用下面的shell指令碼判斷某個檔案是否存在 這裡的 f引數判斷 file是否存在 if f file then echo 檔案不存在 fi 但是我們想判斷hdfs上某個檔案是否存在咋辦呢?別急,hadoop內建提供了判斷某個檔案是否存在的命令 iteblog ww...
HDFS中的shell操作
1.首先命令都是以hadoop fs 開頭 2.hadoop fs ls 檢視hdfs的根目錄下的內容,hadoop fs lsr 遞迴檢視根目錄下的內容 3.hadoop fs mkdir gao,在hdfs上建立資料夾gao 4.hadoop fs put 把資料從linux上傳到hdfs的特定...
HDFS中的shell操作
hdfs檔案系統 hdfs 是訪問資料的分布式檔案系統,那麼對 hdfs 的操作,就是檔案系統的基本操作,比如檔案的建立 修改 刪除 修改許可權等,資料夾的建立 刪除 重新命名等。對hdfs 的操作命令類似於 llinux 的 shell 對檔案的操作,如 ls mkdir rm 等。我們執行以下操...