hdfs获取目录下的所有文件
时间: 2023-07-31 15:11:26 浏览: 103
你可以使用以下命令来获取 HDFS 目录下的所有文件:
```
hdfs dfs -ls -R /path/to/directory | grep "^-" | awk '{print $NF}'
```
这条命令的作用是:
1. 使用 `hdfs dfs -ls -R` 命令来递归列出目录下的所有文件和子目录。
2. 使用 `grep` 命令来过滤只保留普通文件,去掉目录和其他类型的文件。
3. 使用 `awk` 命令来提取文件路径,输出所有文件的完整路径。
注意,该命令只能获取目录下的直接子文件,无法递归获取子目录下的文件。如果需要递归获取所有子目录下的文件,可以使用 `find` 命令来替代 `ls` 命令。例如:
```
hdfs dfs -find /path/to/directory -type f
```
该命令会递归查找目录下的所有文件,并输出文件的完整路径。
相关问题
shell脚本批量获取hdfs当前目录下所有文件的磁盘大小
要批量获取HDFS当前目录下所有文件的磁盘大小,你可以使用Hadoop的`hdfs dfs -du`命令。下面是一个示例的shell脚本:
```shell
#!/bin/bash
# 获取HDFS当前目录下所有文件的磁盘使用情况
hdfs dfs -du -h -s */*
```
这个脚本会使用`hdfs dfs -du`命令来获取HDFS当前目录下所有文件的磁盘使用情况。其中,`-h`选项表示以人类可读的方式显示大小,`-s`选项表示只显示总和。
你可以将以上代码保存为一个名为`disk_usage_hdfs.sh`的文件,然后在终端中执行该脚本,即可获得HDFS当前目录下所有文件的磁盘大小信息。
hdfs 一个目录下的所有文件大小之和的命令
可以使用hdfs dfs -du命令来获取一个目录下所有文件的大小信息,并通过管道符号将输出传递给awk命令,使用awk命令对所有文件的大小进行求和,命令如下:
```
hdfs dfs -du -s /path/to/directory | awk '{ sum += $1 } END { print sum }'
```
其中,/path/to/directory是你要查找的目录路径,命令将输出所有文件的大小之和。