如何递归列出 HDFS 的子目录?

How can I list subdirectories recursively for HDFS?

我在 HDFS 中递归创建了一组目录。如何列出所有目录?对于普通的 unix 文件系统,我可以使用以下命令

find /path/ -type d -print

但我想为 HDFS 获取类似的东西。

递归列出目录内容可以使用hadoop dfs -lsr /dirname命令。

要仅过滤目录,您可以在上述命令的输出中 grep "drwx" (因为所有者对目录具有 rwx 权限)。

因此整个命令如下所示。

$hadoop dfs -lsr /sqoopO7 | grep drwx 

@Shubhangi Pardeshi 给出的答案是正确的,但对于最新的 hadoop 版本命令已弃用。所以新的最新命令可以如下使用

hdfs dfs -ls -R /user | grep drwx

以下方法对于只获取目录应该更可靠,因为它对权限的依赖较少。

hdfs dfs -ls -R /folder | grep "^d"