find の使用 $filepath の特定のファイル :
if [ -n "$(find "$filepath" -prune -size +1000000c)" ]; then
printf '%s is strictly larger than 1 MB\n' "$filepath"
fi
これは find を使用します $filepath で特定のファイルを照会する そのサイズのために。サイズが 1000000 バイトを超える場合、find ファイルのパス名を出力します。それ以外の場合は何も生成しません。 -n 文字列の長さがゼロでない場合、test は真です。この場合、find を意味します。 これは、ファイルが 1 MB より大きいことを意味します。
あなたはこれについて質問しませんでした:$dirpath の下で 1 MB より大きいすべての通常のファイルを見つける それぞれの短いメッセージを出力します:
find "$dirpath" -type f -size +1000000c \
-exec printf '%s is larger than 1 MB\n' {} +
これらのコードは、任意の Unix に移植できるはずです。
< を使用していることにも注意してください または > テストでは、関連する 2 つの文字列が辞書順で特定の方法でソートされるかどうかをテストします。これらの演算子は数値比較を行いません。そのためには、-lt を使用します ("未満")、-le (「以下」)、-gt (「より大きい」)、または -ge (「以上」)、-eq (「等しい」)、または -ne (「等しくない」)。これらの演算子は整数比較を行います。