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 )

関連情報