我一直在使用du命令来获取目录的大小:
du /tmp/dir1
这产生了文件的总大小:
7 /tmp/dir1
然后我解析并使用细节。
这个文件夹充满了.txt和txr文件。我只对*.txt文件的总大小感兴趣。
有没有办法可以修改du命令以生成仅文件大小的单行输出*.txt?
将文件列表传递给du命令。例如:
du -s /tmp/dir1/*.txt
仅获取总大小的可能解决方案是获取du' 输出的最后一行,如下所示:
du -c /tmp/dir1/*.txt | tail -1
du没有简单的方法来过滤输出;但是我们可以使用findwithstat来获取文件大小,然后awk总结一下:
$ find /tmp/dir1 -name '*.txt' -exec stat -c %s {} + | awk '{s+=$1} END {print s}'
请注意,由于参数不兼容,这仅适用于 Linux/GNU 系统stat。
使用--exclude选项:
du --exclude '*.krt' /tmp/dir1
以下是可能的选项:
du -csh *.txt
find -name "*.txt" -exec du -csh '{}' +
注意:您可以将 .txt 替换为任何其他文件类型
您还可以通过以下命令检查目录和文件的大小。
导航到路径 ( /tmp/dir1 )du -sh *或du -sh /tmp/dir1