我用來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 )