シェルスクリプトでファイルのサイズを参照する方法
目次
スポンサードリンク
シェルスクリプト内でファイルのサイズを取得する際はいくつか方法がありますが、 wcコマンドの -c オプションを使うとシンプルに取得できます。
以下の記述は、ファイル /tmp/test のサイズを wcコマンドで取得し、変数file_sizeに代入しています。 wc -c コマンドを実行すると、ファイルサイズと一緒にファイル名も表示されますが、下記のように標準入力にファイルを渡すとファイルサイズのみを返すのを活用したテクニックです。
file_size=`wc -c < /tmp/test`
ファイルサイズで条件分岐するサンプルコード
以下のサンプルコードは変数に代入したファイルサイズと数値を比較し実行する処理を分岐しています。
#!/bin/bash
# ファイル /tmp/test のサイズを変数file_sizeに代入
file_size=`wc -c < /tmp/test`
if [ $file_size -eq 21 ]; then
echo "ファイルサイズが21と等しい"
fi
if [ $file_size -ne 21 ]; then
echo "ファイルサイズが21と等しくない"
fi
if [ $file_size -ge 21 ]; then
echo "ファイルサイズが21以上"
fi
if [ $file_size -gt 21 ]; then
echo "ファイルサイズが21より大きい"
fi
if [ $file_size -le 21 ]; then
echo "ファイルサイズが21以下"
fi
if [ $file_size -lt 21 ]; then
echo "ファイルサイズが21より小さい"
fi
echo $file_size
exit 0
シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
リンク
最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
リンク
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法