介紹各種在 Bash 指令稿中檢查與取得檔案大小的方法,並提供範例程式碼。

stat 指令

stat 指令搭配 -c %s 參數即可取得指定檔案的大小,單位為位元組(bytes):

# 取得 mydoc.pdf 的檔案大小(單位為位元組 bytes)
stat -c %s mydoc.pdf
19725

以下是將 stat 指令應用於 bash shell 指令稿中,取得檔案大小的範例:

#!/bin/bash
# 檔案名稱
FILENAME=mydoc.pdf

# 取得檔案大小
FILESIZE=$(stat -c%s "$FILENAME")

# 輸出檔案大小資訊
echo "$FILENAME 大小為 $FILESIZE 位元組"
mydoc.pdf 大小為 19725 位元組

ls 指令

ls 指令的輸出終究有包含檔案大小的資訊,我們可以搭配 awk 這類的簡單工具,將檔案大小的資訊取出:

# 透過 ls 與 awk 取得檔案大小
ls -la mydoc.pdf | awk '{print $5}'
19725

ls 若搭配 -h 參數,可以輸出比較容易閱讀的檔案大小格式:

# 取得易讀的檔案大小資訊
ls -lah mydoc.pdf | awk '{print $5}'
20K

以下是應用於 bash shell 指令稿中的範例:

#!/bin/bash
# 檔案名稱
FILENAME=mydoc.pdf

# 取得檔案大小
FILESIZE=$(ls -lah $FILENAME | awk '{print $5}')

# 輸出檔案大小資訊
echo "$FILENAME 大小為 $FILESIZE"
mydoc.pdf 大小為 20K

參考資料