如何使用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 )

相關內容