如何在没有单词“total”的情况下获得“du -c”的输出?

use*_*314 5 grep du

我想获取目录的总大小以及其中的所有目录。

我正在使用命令

du -h -c "$input_variable" | grep total
Run Code Online (Sandbox Code Playgroud)

它打印结果和单词total。如何在没有单词的情况下获得结果total

Kam*_*ski 8

您只传递一个文件: "$input_variable",因此您可以grep使用-s代替-c

-s
只报告每个指定文件的总和,而不是默认输出。

来源

如果我正确阅读文档,du则应在其输出中使用空格字符将大小与路径名分开。常见的实现虽然使用选项卡。awk使用其默认字段分隔符应该能够在两种情况下分隔第一个字段:

du -hs "$input_variable" | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 解决方案不依赖于单词total,因此du也可以支持本地化;
  • -s是一个便携式选项,而-c不是(-h您使用的也不是便携式的)。

  • @user1555314 可能是因为:[为什么有这么多不同的方法来衡量磁盘使用情况?](https://unix.stackexchange.com/q/120311/108618) (2认同)

S.S*_*nne 2

通过管道将其输入sed| sed 's/\ttotal//g'

  • @user1555314 尝试一下就知道了。 (3认同)