Linuxでファイルやディレクトリを削除するには、rm コマンドを使います。ファイル1つなら rm ファイル名、複数まとめてなら rm file1 file2、中身のあるディレクトリ(フォルダ)ごと消すなら rm -r ディレクトリ名 です。削除したファイルはゴミ箱を経由せず即座に消え、基本的に復元できません。まずは下の早見表で目的に合うコマンドを確認し、rm -rf のような強力なオプションを使う前には対象を必ず確認しましょう。
bashについて、基本的な考え方や使い方については bash から参照ください。
目的別 ファイル削除コマンド早見表
Linuxでファイルを削除する際によく使うコマンドを目的別にまとめました。詳しい説明は各見出しで解説します。
| 目的 | コマンド例 | 説明 |
|---|---|---|
| ファイルを1つ削除 | rm file.txt | 指定した1ファイルを削除する |
| 複数ファイルを削除 | rm file1.txt file2.txt | スペース区切りで複数ファイルを指定 |
| フォルダ(ディレクトリ)を削除 | rm -r dir | 中身ごと再帰的に削除する |
| 空のフォルダだけ削除 | rmdir dir | 中身が空の場合のみ削除できる安全な方法 |
| 確認しながら削除 | rm -i file.txt | 1件ずつ確認プロンプトを表示 |
| 確認なしで強制削除 | rm -f file.txt | 存在しないファイルも無視し即座に削除 |
| 拡張子を指定して一括削除 | rm *.log | ワイルドカードで一致するファイルをまとめて削除(事前に ls *.log で対象確認) |
構文(Syntax)
rm [オプション] ファイル/ディレクトリ...
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 単一のファイルを削除 | rm file.txt |
-i | 削除前に確認を求める | rm -i file.txt |
-I | 3件以上・再帰削除の前に1回だけ確認を求める | rm -I *.log |
-f | 確認せず強制的に削除し、存在しないファイルも無視する | rm -f file.txt |
-r | ディレクトリを再帰的に削除 | rm -r dir |
-rf | ディレクトリを強制的に削除(最も危険) | rm -rf dir |
-d | 空のディレクトリを削除する(-r 不要) | rm -d emptydir |
-v | 削除したファイルを表示 | rm -v file.txt |
-- | - で始まるファイル名を削除する際に使用 | rm -- -filename |
実行例
ファイルを削除
rm file.txt
複数ファイルを削除
rm file1.txt file2.txt
削除時に確認する
rm -i important.txt
出力例:
rm: remove regular file 'important.txt'? y
フォルダ(ディレクトリ)を再帰的に削除
Linuxでフォルダごとファイルを削除するには -r(再帰)オプションを付けます。中身のファイル・サブディレクトリもすべて削除されるため、対象を必ず確認してから実行してください。
rm -r old_project
強制的にディレクトリごと削除
rm -rf /tmp/testdir
削除したファイルを表示
rm -v file.txt
出力例:
removed 'file.txt'
エラー例(存在しないファイル)
rm notfound.txt
出力例:
rm: cannot remove 'notfound.txt': No such file or directory
rm -rf の危険性と実行前の安全確認
rm -rf は確認なしでディレクトリごと強制的に削除する非常に強力なコマンドです。ワイルドカードや誤ったパス指定と組み合わさると、意図しないファイルまで一瞬で消えてしまい、基本的に復元できません。実行前には次の手順で対象を確認する習慣をつけましょう。
pwdで現在地を確認する:意図したディレクトリにいるか確認してから操作します。lsで削除対象を確認する:rm -rfの前に同じパスへlsを実行し、消えるファイル・ディレクトリを目で確認します。- 不安な場合は
-iやechoで試す:rm -iで1件ずつ確認するか、コマンドの先頭にechoを付けてecho rm -rf ./対象/*のように展開結果だけを先に確認してから本番のコマンドを実行します。
pwd
ls 対象ディレクトリ
rm -rf 対象ディレクトリ
特に rm -rf / のようにルート直下やホームディレクトリを対象にすると、システムやユーザーデータ全体が消えてしまいます。多くの現代Linuxでは --no-preserve-root オプションなしにルートは削除できないよう保護されていますが、過信せず対象パスを毎回確認してください。
ワイルドカード(*)利用時の注意点
rm * や rm *.log のようにワイルドカードを使うと、想定より多くのファイルが一致して削除されてしまうことがあります。安全に使うには次の点を守りましょう。
- 削除前に
lsで対象を確認する:rm *.logの前にls *.logを実行し、シェルが展開する一覧を目視で確認します。 -iオプションを併用する:rm -i *.logにすると、一致したファイルごとに確認を求められます。- 隠しファイルの展開に注意する:
rm .*のような指定は.(カレントディレクトリ)や..(親ディレクトリ)にも一致する場合があり、意図しない削除につながります。
ls *.log
rm -i *.log
ファイルが削除できないときの対処
Linuxでファイル削除がエラーになる代表的なケースと対処法です。
| エラーメッセージ | 原因 | 対処 |
|---|---|---|
Permission denied | ファイルの所有者ではない、もしくはディレクトリに書き込み権限がない | 権限を確認し、必要ならsudo rmで実行する。所有者はls -lで確認できる |
Directory not empty | rmdirで中身が残っているディレクトリを削除しようとした | 中身ごと削除するならrm -rを使う |
Is a directory | ファイル用の指定(-rなしのrm)でディレクトリを削除しようとした | -rを付けて実行する |
Device or resource busy | 削除対象がマウントポイントである、または別プロセスが使用中 | lsofやfuserで使用中のプロセスを確認してから削除する |
No such file or directory | パスや拡張子の指定間違い、既に削除済み | lsでパスを再確認する |
権限エラーが解決しない場合は、パーミッションの仕組みとchmodの使い方もあわせて確認してください。
rmdir・unlink・trash-cli・find -delete との使い分け
rm 以外にもファイル・ディレクトリを削除する方法があります。目的に応じて使い分けると、誤削除のリスクを減らせます。
| コマンド | 用途 | 特徴 |
|---|---|---|
rm | ファイル・ディレクトリの削除 | -r でディレクトリも再帰削除できる汎用コマンド |
rmdir | 空ディレクトリの削除専用 | 中身が残っているとエラーになり誤削除を防げる |
unlink | 単一ファイル(リンク含む)の削除専用 | ワイルドカードや複数指定を受け付けないため誤爆しにくい |
trash-cli | ゴミ箱に移動して削除 | 誤って削除しても一定期間は復元できる安全策 |
find ... -delete | 条件に一致したファイルの一括削除 | 事前に -print で対象を確認してから -delete に切り替えられる |
rmdir は中身が空でない場合はエラーになるだけなので、空ディレクトリの掃除に向いています。rmdir のオプションや rm -r との使い分け、実行例はLinuxでディレクトリを削除する方法|rmdir・rm -rの使い方と注意点を解説で詳しく解説しています。
unlink は1つのファイルしか指定できないコマンドで、ワイルドカードで思わぬファイルを巻き込む心配がありません:
unlink file.txt
find と -delete を組み合わせると、条件に一致したファイルだけを安全に削除できます。誤爆を防ぐため、まず -delete を付けずに対象を確認してから実行するのがおすすめです:
find . -name "*.tmp" # まず対象を確認
find . -name "*.tmp" -delete # 確認後に削除
より高度な検索条件との組み合わせは、findコマンドの使い方やfindコマンドとxargsの組み合わせ術で解説しています。
誤削除を防ぐヒント
rmはゴミ箱を経由せず即削除するため、基本的に 元に戻せません。重要なファイルは事前にバックアップを取りましょう。- 特に
rm -rf /のようなコマンドはシステムを破壊するため絶対に実行してはいけません。 - 誤削除防止のため、普段は
alias rm='rm -i'と設定しておくことが推奨されます。 -rを使う際はディレクトリの中身もすべて消えるため注意が必要です。- シンボリックリンクを削除する場合、リンク先の実体ではなくリンク自体が消えることを確認しておきましょう。
よくある質問(FAQ)
Q. Linuxでファイルを削除する基本のコマンドは何ですか?
rm コマンドです。rm ファイル名 でファイルを1つ削除でき、ディレクトリごと削除する場合は rm -r ディレクトリ名 を使います。GUI環境であればファイルマネージャーの「削除」やゴミ箱への移動でも同様の操作ができます。
Q. rm で削除したファイルは復元できますか?
通常の rm では削除したファイルをゴミ箱に移動しないため、基本的に復元できません。重要なファイルは事前にバックアップを取るか、rm -i で確認しながら削除する習慣をつけましょう。誤削除が心配な場合は、trash-cli や rip などのゴミ箱系ツールを rm の代わりに使う方法もあります。
Q. rm -rf / を実行するとどうなりますか?
ルートディレクトリ以下のすべてのファイルを再帰的・強制的に削除しようとします。システムが起動不能になる危険な操作のため、絶対に実行しないでください。多くの現代Linuxでは --no-preserve-root オプションなしには実行できないよう保護されています。
Q. フォルダ(ディレクトリ)を削除するにはどうすればよいですか?
空のディレクトリは rmdir ディレクトリ名 で削除できます。中身ごと削除したい場合は rm -r ディレクトリ名 を使います。誤削除を防ぐために rm -ri ディレクトリ名 で確認しながら削除するのがおすすめです。
Q. 「Permission denied」でファイルを削除できないのはなぜですか?
削除対象のファイルがあるディレクトリに書き込み権限がない場合に発生します。ls -l で所有者とパーミッションを確認し、必要に応じて sudo rm を使うか、chmod で権限を変更してから削除してください。
Q. 特定の拡張子のファイルをまとめて削除するには?
ワイルドカードを使って rm *.log のように指定します。削除前に ls *.log で対象ファイルを確認してから実行すると安全です。
Q. rm と rmdir、unlink はどう違いますか?
rm はファイル・ディレクトリの両方を削除でき、-r を付けると中身ごと再帰的に削除します。rmdir は空のディレクトリしか削除できないため、中身が残っている場合はエラーになり誤削除を防げます。unlink は1つのファイルだけを厳密に削除するコマンドで、ワイルドカードや複数指定を受け付けないため誤爆が起きにくいという特徴があります。
関連記事
- ls – ディレクトリやファイルの一覧を表示するコマンド — 削除前に対象ファイルを確認するための基本コマンド
- pwd – 現在の作業ディレクトリを表示する — rm -rfの前に現在地を確認するために使う
- mkdir – ディレクトリを作成するコマンド — 削除の逆操作、ディレクトリ作成の基本
- mv – ファイルやディレクトリを移動・名前変更するコマンド — 削除せず移動・リネームしたい場合に使うコマンド
- find コマンドの使い方|オプション一覧・実行例・locateとの違い — 削除前に対象ファイルを検索・絞り込むための基本コマンド
- パーミッションとは?Linuxの権限の仕組みとchmodによる変更方法 — Permission deniedでファイルを削除できないときの対処に必要な知識
- linux コマンド一覧|用途別に整理した初心者向け完全ガイド — Linuxコマンド全体を用途別に整理したまとめ記事
参考
- manページ: man7.org rm(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント