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
(「等しくない」)。これらの演算子は整数比較を行います。