[解決済み] Bashを使ってファイルのサイズを確認するにはどうしたらいいですか?
2022-04-25 02:40:22
質問
0-sizeをチェックするスクリプトを持っていますが、代わりにファイルサイズをチェックする簡単な方法があるはずだと思いました。 例えば
file.txt
は通常100kBですが、90kB以下(0を含む)かどうかをスクリプトでチェックさせ、以下のようにするにはどうしたらよいでしょうか。
ウィジェット
この場合、ファイルが破損しているので、新しいコピーを作成する必要があります。
現在使用しているもの...
if [ -n file.txt ]
then
echo "everything is good"
else
mail -s "file.txt size is zero, please fix. " [email protected] < /dev/null
# Grab wget as a fallback
wget -c https://www.server.org/file.txt -P /root/tmp --output-document=/root/tmp/file.txt
mv -f /root/tmp/file.txt /var/www/file.txt
fi
解決方法は?
[ -n file.txt ]
は、そのサイズをチェックしません。それは、文字列
file.txt
は長さが0ではないので、必ず成功します。
もし、"size is non-zero" と言いたい場合は
[ -s file.txt ]
.
ファイルのサイズを取得するためには
wc -c
でサイズ(ファイルの長さ)をバイト単位で取得します。
file=file.txt
minimumsize=90000
actualsize=$(wc -c <"$file")
if [ $actualsize -ge $minimumsize ]; then
echo size is over $minimumsize bytes
else
echo size is under $minimumsize bytes
fi
この場合は、それでよさそうですね。
しかし、参考までに、ファイルがどれくらいのディスクスペースを使用しているかを知りたい場合は
du -k
でサイズ(使用するディスク容量)をキロバイト単位で取得します。
file=file.txt
minimumsize=90
actualsize=$(du -k "$file" | cut -f 1)
if [ $actualsize -ge $minimumsize ]; then
echo size is over $minimumsize kilobytes
else
echo size is under $minimumsize kilobytes
fi
出力形式をより細かく制御する必要がある場合には
stat
. Linuxでは、次のようなものから始めます。
stat -c '%s' file.txt
そして
BSD
と
Mac OS X
のようなものです。
stat -f '%z' file.txt
.
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] Bashで文字列から改行を削除する方法
-
[解決済み] OS X で 'find' コマンドを使用して 'sed' を使用するとエラーが発生する。"無効なコマンドコードです。"
-
[解決済み] 値がベースに対して大きすぎる(エラートークンは "08")[重複]
-
[解決済み] 絶対パスと論理パスの違い
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] シェルスクリプトでの連想配列
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] Bashスクリプトのset -o pipefailの意味を教えてください。
-
[解決済み] シェルでファイルサイズ(バイト)を取得するポータブルな方法