rm コマンドはファイルシステムのエントリを削除します。コマンドラインでの削除は通常、項目をデスクトップのゴミ箱へ送りません。また rm に組み込みの undo はないため、実行前にすべての対象を確認してください。
コマンドライン · レッスン 13
rm(削除)
対象を確認して安全な `rm` オプションを選び、ファイルやディレクトリを削除する方法を学びます。
基本構文は次のとおりです。
rm [OPTIONS] FILE...
ファイルを削除する
1 つ以上のファイルパスを rm に渡します。
$ rm file1
$ rm notes.txt old-report.txt draft.md
Enter を押す前に綴りと場所を確認してください。削除後にファイルシステム復旧ツールへ頼るより、バックアップやバージョン管理のコピーの方が確実な復旧手段です。
対象を確認した後、old-report.txt を削除するコマンドはどれですか?
ワイルドカードの対象を事前確認する
シェルはワイルドカードを複数のオペランドへ展開できます。たとえば *.tmp は現在のディレクトリにある、一致する隠しファイル以外の名前を選びます。
$ rm *.tmp
削除前に、同じ引用符なしのパターンを ls で確認します。
$ ls *.tmp
cache.tmp test.tmp
$ rm *.tmp
シェルは rm が始まる前にパターンを展開します。確認結果に予期しないファイルが含まれていたら、そのまま進めずパターンを修正してください。
*.tmp の削除を予定しています。削除せず、パターンが選ぶ隠しファイル以外のパス名を先に表示するコマンドはどれですか?
確認を求める
-i オプションは各削除の前に尋ねます。
$ rm -i important.txt
rm: remove regular file 'important.txt'? y
GNU rm の -I は、より簡潔な安全策です。3 ファイルより多く削除する場合や、再帰操作の場合に一度だけ尋ねます。
指定した各ファイルを削除する前に確認を求めるコマンドはどれですか?
`-f` で存在しないファイルを無視する
-f オプションは存在しないオペランドを無視し、プロンプトを抑止します。
$ rm -f old-cache.txt
生成ファイルがすでにない可能性のあるスクリプトでは、クリーンアップを何度実行しても同じ結果にできます。確認がなくなるため、理解していないエラーを消すためだけに -f を追加しないでください。
ディレクトリを削除する
通常の rm はディレクトリを削除しません。
$ rm projects
rm: cannot remove 'projects': Is a directory
ディレクトリツリーとその全内容を削除する意図がある場合にだけ、-r または -R を使います。
$ rm -r old-project
空のディレクトリには、対象を限定できる rmdir があります。
$ rmdir empty-directory
rmdir はディレクトリが空でなければ失敗するため、再帰的な削除から内容を守れます。
old-cache/ が空の場合だけ、そのディレクトリを削除するコマンドはどれですか?
再帰削除を確認する
再帰削除はツリー全体を消去できます。-r と -f を組み合わせるとプロンプトもなくなるため、rm -rf では対象を特に慎重に検証してください。再帰削除の前に次を確認します。
- 想定したディレクトリにいるか。
pwdを使う ls -ld -- TARGETが意図した最上位パスを示すか- ワイルドカードがある場合、読み取り専用の確認が期待どおりに一致したか
- パスが絶対か相対か。
/tmp/cacheとtmp/cacheは大きく異なる - 誤った空白がないか。
rm -rf old-projectとrm -rf old projectは異なるパスを対象にする
ハイフンで始まる可能性のある対象の前には、オプションと解釈されないよう -- を使います。
$ rm -- -old-name
rm がパーミッションエラーを報告したという理由だけで sudo を使わないでください。まず対象を確認し、自分のアカウントが親ディレクトリを変更できない理由を調べます。権限を高めた再帰削除は、オペレーティングシステムやほかのユーザーのデータを損傷させる可能性があります。
成功した各削除を rm に報告させるには -v を使います。
$ rm -rv old-project
removed 'old-project/notes.txt'
removed directory 'old-project'
完全な対象を確認した後、通常のプロンプトを残しながら old-project/ とその下のすべてを削除するコマンドはどれですか?
管理された環境で削除を練習するには、次のハンズオンラボを利用してください。
- **Linux rm コマンド:ファイルの削除**:
-rや-iを含むrmのオプションを使い、ファイルとディレクトリを安全に削除します。 - **ファイルとディレクトリの整理**:実践的な課題で、
rmを使って不要なディレクトリを片付けます。
レッスン完了
rm(削除) を完了しました
これで、すべての対象を元に戻せないものとして扱いながら、ファイルシステムのエントリを削除できるようになりました。
削除前にファイルのパス名を確認する。
読み取り専用コマンドでワイルドカード展開を事前確認する。
-iまたは-Iで確認を求める。ディレクトリが空でなければならない場合は
rmdirを優先する。再帰削除の前に対象全体を検証する。