如何在Bash中计算二进制文件的字节数?

10
在Bash中,我可以像这样计算文本文件中的字节数:
cat textfile.txt | wc -c

然而,我无法将二进制文件的内容(例如PNG位图图像文件)输出到标准输入。

如何计算位图图像文件中字节数的数量?

我不想计算磁盘上存储它所使用的字节数,因为我了解这在操作系统之间可能会有所不同。相反,我正在寻找一种方法来计算在HTTP传输文件时将传输的字节数(当然不包括HTTP头)。


1
你只需要使用文件大小就可以了,不必在意“磁盘上的大小”这个问题,因为这只是次要的。我怀疑*nix会给你文件的“磁盘上的大小”这个数字。 - drudge
1
“无法将位图图像文件(例如PNG)的内容cat到标准输入。” - 当然可以。但正如Jim Lewis所指出的那样,使用cat是不必要的,因为wc接受文件名(或者您可以使用重定向)。 - Dennis Williamson
@jnpcl:是的,现在我看起来似乎就是这种情况。 - Paul D. Waite
1个回答

16

嗯:那确实有道理,但是我得到的 wc -c 报告的是例如 1814 字节的文件,而 Mac OS X Finder 显示为 27,008 字节。 - Paul D. Waite
话虽如此,lsstat 报告的大小是相同的。嗯。 - Paul D. Waite
5
输出文件大小但不包括文件名:wc -c < 文件名 - Dennis Williamson
1
@Paul:OS X Finder 应该会同时显示两者。例如,我在桌面上有一个 HTML 片段,大小为 397 字节,但 Finder 显示它为 4KB。这只是意味着硬盘使用了 4KB 块格式化,即使文件大小要小得多,它仍然必须使用 1 个块来存储它。 - drudge
1
@jim-lewis:我删除了我的回答,声称wc -c在二进制文件上无法正常工作。这是一个愚蠢的用户错误,让我得出结论,第一条评论似乎证实了我的观察结果。现在测试了数千个二进制文件,所有这些文件都被正确报告。感谢您的跟进!(在您编辑之前,SO不允许我将对您的回答的负评转为赞成票。) - Uwe Geuder
显示剩余2条评论

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