为了检查目录是否存在,我使用了以下命令
hdfs dfs -test -d /HDFS/Sample
此处示例是HDFS中的目录。
命令说如果path是directory,它将返回0,当我在提示符中执行此命令时,我无法在命令提示符下获得0。
答案 0 :(得分:0)
您必须检查命令的退出状态。在bash中,您可以使用echo $?
。
$hdfs dfs -test -d /tmp/testdir
$echo $?
1
以上示例显示/tmp/testdir
未退出。
答案 1 :(得分:0)
[oracle@bigdatalite tmp]$ hdfs dfs -ls
Found 12 items
drwx------ - oracle oracle 0 2018-01-09 15:06 .Trash
drwxr-xr-x - oracle oracle 0 2018-01-09 16:06 .sparkStaging
drwx------ - oracle oracle 0 2017-11-20 14:44 .staging
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 indexMetadata
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 jobRegistry
drwxr-xr-x - oracle oracle 0 2018-10-02 11:04 kevin_learning
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 mediademo
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 moviedemo
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 moviework
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 oggdemo
drwxr-xr-x - oracle oracle 0 2017-01-15 17:19 oozie-oozi
drwxrwxrwx - oracle oracle 0 2017-11-17 16:39 tmp
[oracle@bigdatalite tmp]$ hdfs dfs -test -d kevin_learning
[oracle@bigdatalite tmp]$ echo $?
0
[oracle@bigdatalite tmp]$ hdfs dfs -test -d kevin_learning2
[oracle@bigdatalite tmp]$ echo $?
1
[oracle@bigdatalite tmp]$