Shell中判斷HDFS中的檔案或目錄是否存在

2021-09-04 10:53:58 字數 2325 閱讀 4504

在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 等。我們執行以下操...