カレントディレクトリ以下の *.tmp ファイルを検索し、見つかった各ファイルを削除するコマンドはどれですか。

LPIC-1(101/102 試験)「GNU・Unixコマンド」の練習問題。正解と選択肢ごとの個別解説つきで、過去問対策・例題演習に。

LPIC-1 / GNU・Unixコマンド ・ コマンド問題
$
  1. find . -name "*.tmp" -exec rm {} \;✓ 正解
  2. find . -name "*.tmp" -rm
  3. find . -name "*.tmp" | rm
  4. find . -name "*.tmp" -delete {} \;
💡 -exec はマッチした各ファイルに対しコマンドを実行し、{} がファイル名に置換され \; で区切ります。-delete でも削除できますが {} は不要です。
○ find . -name "*.tmp" -exec rm {} \;:正解。-exec rm {} \; は見つかった各ファイル({}に置換)に rm を実行して削除します。
✕ find . -name "*.tmp" -rm:find に -rm というアクションは存在せず、削除はできません。
✕ find . -name "*.tmp" | rm:rm は標準入力からファイル名を受け取らないため、パイプでは削除できません(xargs等が必要)。
✕ find . -name "*.tmp" -delete {} \;:-delete は単独で機能し {} \; は不要で、この記法は構文として不正です。
▶ この分野をクイズ形式で解く