如何使用du提取文件大小

如何使用du提取文件大小

我用来du在打包器脚本中获取结果存档的文件大小:

> du -smh archive.zip
51M    archive.zip

我想将部分分配51M给变量,以便能够打印:

Archive size: 51M

我怎样才能做到这一点?

答案1

你可以这样做:

$ variable=$(du -smh archive.zip | awk '{print $1}')

细节

awk将解析输出并将其分解为列。您只需要第一列的结果。 $( .. ) 代码将运行命令并返回其结果。

答案2

或者使用该stat程序(如果可用)(通常默认在 Linux 上)。没有人类可读的 K/M/G 转换,但它也不需要任何其他东西来获取数字/有很好的格式选项:

sauer@humpy:~$ stat -c "%s" /etc/passwd
2302
sauer@humpy:~$ stat -c "%n size: %s bytes" /etc/passwd /etc/shadow
/etc/passwd size: 2302 bytes
/etc/shadow size: 1389 bytes

答案3

awk 是一个比你需要的更大的锤子,用刀切,

variable=$(du -smh archive.zip | cut -f1 )

相关内容