iT邦幫忙

0

Shell 輸出檔案大小(已解決)

我寫了一支 Shell Script 將一堆資料包成壓縮檔
想用檔案的大小來判定有沒有成功
檔案大小 < 13000 bytes(或是 100MB) 就是失敗
我有試過用 du -sh filename
但是他輸出是 大小+檔案目錄
有其他方式嗎?? 想要以 Shell為主 ><

weiclin iT邦高手 4 級 ‧ 2017-06-09 13:47:35 檢舉
不就是 "ls -l file.zip" 嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
weiclin
iT邦高手 4 級 ‧ 2017-06-09 13:58:37
最佳解答

我的話大概會這樣弄:

if [ "$(stat -c '%s' file.zip 2>/dev/null || echo 0)" -ge 13000 ]; then
    echo ok;
else
    echo bad;
fi

其中的 || echo 0 是為了檔案不存在時當作 size 0 處理
剩下的應該不用解釋了?

0
bizpro
iT邦大師 1 級 ‧ 2017-06-09 22:28:15

用$?捕捉指令的結果, 例如:

#!/bin/bash
/bin/tar -cfz test.tar.bz2 *.pdf > /dev/null
if [ "$?" -eq 0 ]; then
  echo "successful"
else
  echo "error"
fi

我要發表回答

立即登入回答