如何递归地汇总文件夹中特定文件名的大小

How to summarize size of a specific file name over a folder recursively

我需要找出包含大量子文件夹的文件夹中 hdfs 上的特定文件(例如所有 pdf)使用了多少字节(唯一)。

我尝试了一些代码,但没有找到好的答案。我不擅长 linux shell 编码。

您可以使用 HDFS 命令和 Linux 命令来查找 HDFS 中特定类型文件的 summary/total 大小。

例如,您可以使用如下命令列出相似的文件类型(.txt 在下面的示例中键入)。请注意,这些文件同时存在于 /tmp/tmp/test/

hdfs dfs -ls -R /tmp/|grep .txt
-rw-r--r--   3 root   supergroup         70 2019-09-11 05:27 /tmp/test/testing1.txt
-rw-r--r--   3 root   supergroup         30 2019-09-11 05:27 /tmp/testing.txt
-rw-r--r--   3 root   supergroup         70 2019-09-11 05:31 /tmp/testing1.txt

为了得到这些文件的总大小,我们需要将每个文件的大小相加,即上面输出的第五列。这可以使用如下命令完成,

hdfs dfs -ls -R /tmp/|grep .txt|awk '{ total +=  }; END { print total }'
170

170 Bytes(70+30+70)是HDFS目录/tmp/下所有.txt文件占用的总大小

希望对您有所帮助!