如何从shell脚本获取文件大小(以字节为单位)?

jsh*_*erk 31 macos bash terminal

我正在尝试创建一个脚本来为Apple的ITMSP Transporter文件编写XML文件,以便将元数据上传到App Store.屏幕截图的要求是文件名,MD5校验和和文件大小(以字节为单位).

MD5校验和很简单,可以使用 md5 -q image.png

但是我很难尝试获取图像文件的字节大小.如果我使用du -k image.png命令,它将返回以千字节为单位的大小.因此,例如,如果实际大小为5722字节,du则将返回8(如8K或8192字节),这是不正确的.默认du值为512字节块,但仍将值向上舍入(因此它将返回16而不是8).

我正在运行Lion OSX 10.7.4.

dus*_*uff 67

一个简单的方法是:

stat -f%z image.png
Run Code Online (Sandbox Code Playgroud)

stat通常会吐出一堆数据,但%z格式只选择字节大小.

  • @ pixel67呃,没有...那只是显示大小的字节,后跟单词"megabytes" (3认同)
  • 统计:无效的选项 - '%' :( (2认同)
  • @ user3019105不是个好主意.根据您的语言环境设置,`wc`可能会尝试计算UTF-8字符,而不是字节,这些字符在二进制数据上无法正常工作. (2认同)

pix*_* 67 6

在OSX上做stat -f "%z bytes".