-test
を試すことができます 同じことを達成するためのオプション。
hdfs dfs -test -[defszrw] HDFS_PATH
-d
: パスがディレクトリの場合は、0 を返します。-e
: パスが存在する場合は、0 を返します。2.7.0以降
-f
: パスがファイルの場合は、0 を返します。-s
: パスが空でない場合は、0 を返します。-r
: パスが存在し、読み取り許可が付与されている場合は、0 を返します。2.8.0以降
-w
: パスが存在し、書き込み権限が付与されている場合は、0 を返します。-z
: ファイルの長さがゼロの場合は、0 を返します。
例:
if hdfs dfs -test -e $HDFS_PATH; then
echo "[$HDFS_PATH] exists on HDFS"
hdfs dfs -ls $HDFS_PATH
fi
参照:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#test