以“du”打印字节。

22
我正在使用du -sh命令来查看目录的大小。如果我检查一个1KiB的目录,我会看到:
1.0K    .

然而,我希望以字节的形式输出,并且仅仅是字节计数。
例如:
$ du -sh .
1024

3
你为什么要使用 h 标志呢?请阅读手册。 - Mat
Mat,如果我省略-h选项,则不会得到字节计数。例如,一个8K的目录在没有使用-h选项的情况下会给出16。8千字节不是16个字节。 - leetbacoon
4
命令“du”的意思是“磁盘使用情况”,即文件/目录在磁盘上占用了多少空间(扇区等)。它不表示文件中存储了多少字节,而更多地表示存储N字节内容所需的字节数。使用“du -b”可以得到纯字节计数。请参见“I'm confused by the output of du”(https://blog.superuser.com/2011/04/16/confused-by-the-output-of-du-in-linux/)。 - kvantour
谢谢kvantour。这只适用于GNU du,但没关系。我还通过grep -o '^[0-9]\+'进行了管道传输,以获得我所需的真实输出。 - leetbacoon
1个回答

29

要获取以字节为单位的文件大小,您应该使用以下命令:

du -sb

(这里的b表示字节)

对于不能正常使用-bdu命令,您可以使用

du -s --block-size=1

它不是。"b"相当于"--apparent-size --block-size=1",并将以字节为单位提供外观大小(https://man7.org/linux/man-pages/man1/du.1.html)。 - sergiz
1
@sergiz,--block-size=1 表示以字节为单位。因为 --block-size=1k 等同于 -k - Romeo Ninov
1
你的评论是正确答案,因为使用“-b”将给出表面大小。 - sergiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接