rm はファイルを削除するコマンドです。ゴミ箱には入らず、元に戻せません。-r と -f の意味と危険な組み合わせを、壊しても大丈夫なブラウザ上のターミナルで確認できます。
最終更新: 2026-09-04
rm [オプション] ファイル...
rm に消したものを戻す手段はありません。
ゴミ箱に移動するのではなく、その場で消えます。
このページのターミナルには、消してよいファイルとディレクトリが置いてあります。
$ ls
build/ draft.txt empty/ notes.txt README.md
$ rm draft.txt
$ ls
build/ empty/ notes.txt README.md
rm は成功しても何も表示しません。
黙って消えるので、打つ前に対象を確かめる必要があります。
| オプション | 意味 |
|---|---|
-r | ディレクトリを中身ごと消す |
-f | 確認を出さず、存在しないファイルでもエラーにしない |
-i | 1つずつ確認する |
既定ではディレクトリを消せません。
$ rm build
rm: cannot remove 'build': Is a directory
$ rm -r build
$ ls
empty/ notes.txt README.md
-r は中身をすべて消します。中に何が入っているか分からないまま打たないでください。
空のディレクトリなら rmdir でも消せます。
こちらは中身があると失敗するので、「空のはずだ」という前提を確かめながら消せるという意味では安全です。
$ rmdir empty
$ ls
notes.txt README.md
| 場面 | 打つもの | 注意 |
|---|---|---|
| いらないファイルを1つ消す | rm draft.txt | 打つ前に ls |
| ビルド成果物を捨てる | rm -r build | パスを確かめてから |
| 空のはずのディレクトリを消す | rmdir empty | 空でなければ失敗する=安全 |
| スクリプトで消す | rm -f | 無くてもエラーにせず進める |
rm -f はスクリプト向けです。
対象が存在しなくてもエラーにならないので、後片付けの処理が途中で止まりません。
$ rm missing.txt
rm: cannot remove 'missing.txt': No such file or directory
$ rm -f missing.txt
$ echo $?
0
rm -rf は最も危険な組み合わせです。
-r で中身ごと、-f で確認なしに消します。
パスを1文字打ち間違えただけで、意図しない範囲がまるごと消えます。
打つ前に pwd で現在地を、ls で対象を確かめてください。
ワイルドカードは打つ前に ls で確かめてください。
rm *.txt を打つ前に ls *.txt を打てば、消える対象がそのまま見えます。
1文字違うだけで対象が変わるので、確かめてから消すのが確実です。
ここでは何を消しても大丈夫です。
すべてブラウザのタブ内の仮想ファイルシステムで動いていて、実機のファイルには一切触れません。
rm -rf / が本当は何を起こすのか気になるなら、ここで試してください。
ページを再読み込みすればまっさらな状態に戻ります。
ターミナル入門
基本コマンドを学ぶ

rmdir / mv / ls