Sie können es mit -test
versuchen Möglichkeit, dasselbe zu erreichen.
hdfs dfs -test -[defszrw] HDFS_PATH
-d
: wenn der Pfad ein Verzeichnis ist, gib 0 zurück.-e
: wenn der Pfad existiert, gib 0 zurück.Seit 2.7.0
-f
: wenn der Pfad eine Datei ist, gib 0 zurück.-s
: wenn der Pfad nicht leer ist, gib 0 zurück.-r
: wenn der Pfad existiert und Leserechte erteilt wurden, gib 0 zurück.seit 2.8.0
-w
: wenn der Pfad existiert und Schreibrechte erteilt sind, 0 zurückgeben.-z
: wenn die Datei keine Länge hat, gib 0 zurück.
Beispiel:
if hdfs dfs -test -e $HDFS_PATH; then
echo "[$HDFS_PATH] exists on HDFS"
hdfs dfs -ls $HDFS_PATH
fi
Referenz:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#test