1.02.2基礎
自分で作成した一時ディレクトリworkと、その中のファイルをまとめて削除する。
workには書き込み可能な通常ファイルだけがある。
再帰削除を指定するコマンドはどれか。
× 不正解
rm -rはディレクトリの内容を再帰的に削除する。対象パスを誤ると被害が大きいため確認して使う。
詳細解説
誤り
rm work通常のrmはディレクトリを再帰的にたどらない。
誤り。オプションなしのrmはworkをディレクトリとして拒否し、中のitemをたどらない。
誤り
rmdir -p work空ディレクトリ向けで、中にファイルがあるworkを削除できない。
誤り。rmdirは中にファイルがある時点で失敗し、ツリー全体を削除しない。
誤り
rm -d work空ディレクトリを対象にし得る指定で、ツリーの再帰処理ではない。
誤り。-dは空ディレクトリを対象にできるが、中身を順にたどる-rとは異なる。
正しい
rm -r workディレクトリ以下を再帰的にたどって削除する。
正しい。-rはwork以下を再帰的に処理し、中の通常ファイルとディレクトリを削除する。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); mkdir "$tmp/work"; touch "$tmp/work/item"; rm -r "$tmp/work"; test ! -e "$tmp/work" && echo removed; rmdir "$tmp"期待される結果
removed理解のポイント
- -rはrecursive
- rmdirは空だけ
- 対象パスを確認
確認時の注意
- 確認環境: GNU coreutils 9.x / 自分が所有する一時ディレクトリ
- 検証対象はmktempで作った専用ディレクトリだけに限定する。
基礎のおさらい
再帰処理
木構造の各階層をたどって同じ操作を適用することを再帰処理という。
安全な運用
変数やワイルドカードを使う場合は展開後の対象を確認し、必要以上に-fを組み合わせない。
問題IDKL-101-397
確認環境GNU coreutils 9.x / 自分が所有する一時ディレクトリ
最終技術確認2026-08-13
誤り・権利侵害を報告