103.3標準
data以下を再帰的に検索する。
サイズが10MiBを超える通常ファイルだけを表示する。GNU findを使う。
適切なコマンドはどれか。
× 不正解
findの-sizeで先頭に+を付けると指定単位数より大きいものを検索する。Mは1,048,576バイト単位である。
詳細解説
正しい
find data -type f -size +10M通常ファイルに限定し、10MiB単位で10を超えるサイズを検索する。
正解。data以下の通常ファイルから10MiBを超えるものを選ぶ。
誤り
find data -type d -size +10M通常ファイルではなくディレクトリだけを対象にする。
ディレクトリだけを対象にする。
誤り
find data -type f -size 10M+がないため、10MiBの単位範囲に該当するファイルを対象にする。
+がなく、ちょうど10単位の範囲を対象にする。
誤り
find data -type f -size -10M10MiB単位で10未満のサイズを検索する逆方向の条件である。
比較方向が逆で小さい側を探す。
実際に確かめる
一時的な検証環境で実行できる例です。
LAB_DIR=$(mktemp -d)
truncate -s 11M "$LAB_DIR/large.bin"
truncate -s 1M "$LAB_DIR/small.bin"
find "$LAB_DIR" -type f -size +10M -printf '%f
'
rm -r "$LAB_DIR"期待される結果
large.bin理解のポイント
- -type fは通常ファイル
- +NはNより大きい
- MはMiB相当の単位
確認時の注意
- 確認環境: GNU findutils 4.x
基礎のおさらい
findの単位丸め
-sizeは指定単位へ切り上げて比較するため、境界付近では単純なバイト比較と異なる。
再帰探索
findは指定した起点自身と、その配下を再帰的に調べる。
問題IDKP-103-052
確認環境GNU findutils 4.x
最終技術確認2026-08-12
誤り・権利侵害を報告