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