「Linuxで不要なファイルやディレクトリを削除したいけど、間違えると怖い」──そんな不安を抱える方も多いのではないでしょうか。Linuxの削除操作は強力で便利ですが、正しく使わないと取り返しのつかないトラブルに発展することも。本記事では、Linuxでのファイルやディレクトリ削除の基本から、一括削除、中身ごと削除、ワイルドカードや条件付き削除、削除できない時の対処法まで、人間の言葉でわかりやすく解説します。
Linuxでファイル・ディレクトリを削除する基本コマンド
Linuxでは、ファイルやディレクトリの削除に主にrm
とrmdir
コマンドを使います。
ファイルの削除(rm)
rm filename.txt
空のディレクトリを削除(rmdir)
rmdir emptydir
※rmdir
は中身があるディレクトリを削除できません。
ディレクトリを中身ごと削除する方法
中身があるディレクトリごと削除するには、rm
に-r
オプション(再帰的)を付けます。
rm -r dirname
さらに-f
(force)を追加すれば、確認なしで強制削除できます。
rm -rf dirname
注意点
rm -rf
は強力です。対象を間違えるとシステムが壊れることもあるので、必ず確認しましょう。
複数ファイル・ディレクトリを一括削除する方法
複数のファイルやディレクトリをまとめて削除するには、スペースで区切って指定します。
rm file1.txt file2.txt dir1 file3.log
また、find
コマンドと組み合わせて一括削除も可能です(条件付き削除に便利)。
ワイルドカードを使った削除
例:特定の拡張子をまとめて削除
rm *.log
→ カレントディレクトリ内の.log
ファイルをすべて削除
ワイルドカードの種類
*
:任意の文字列?
:任意の1文字
ディレクトリ配下すべての特定ファイルを削除
rm /path/to/dir/*.txt
→ 特定パス内の.txt
ファイルを一括削除
削除できないときの原因と対処法
1. 権限がない(Permission denied)
sudo rm filename.txt
→ 管理者権限で実行する
2. 読み取り専用属性がある
読み取り専用属性が付いているファイルは削除できません。属性を解除します:
chmod +w filename.txt
3. ディレクトリ削除で”not empty”エラー
rmdir
ではなくrm -r
を使いましょう。
条件付きでファイルを削除する方法(findコマンド)
find
は条件を指定してファイルを検索し、そのまま削除に使えます。
例:7日以上前に更新されたログファイルを削除
find /var/log -type f -name "*.log" -mtime +7 -exec rm {} \;
例:サイズが100MB以上のファイルを削除
find /home/user -type f -size +100M -exec rm {} \;
ディレクトリ配下のすべてを削除(rmの再帰オプション)
特定のディレクトリ配下すべてを削除したい場合は、再帰オプションを使用します。
rm -r /path/to/dir
より慎重に削除したい場合
rm -ri
:1つずつ削除確認しながら実行
rm -ri dirname
削除の安全対策とヒューマンエラー防止法
1. alias
でrmに-iオプションをつける
alias rm='rm -i'
→ 誤削除防止のため、毎回確認メッセージを表示
2. テスト削除はecho
で確認
find /path -name "*.tmp" -exec echo rm {} \;
→ 実際に削除される対象を事前に表示
削除後の復元は基本できない
Linuxのrmコマンドはゴミ箱に入れず、完全に消します。誤って削除したファイルを復元するのは非常に難しく、通常の環境では復元不可能と考えてよいでしょう。
対策:重要データは削除前にバックアップを
cp filename.txt backup/
rsync -a dir1/ backup_dir/
まとめ|rmを正しく使えば、Linuxでの削除作業は怖くない
rm
は基本の削除コマンド、-r
や-f
で応用が可能- ディレクトリ削除には
rm -r
、中身ごと削除に最適 - ワイルドカードやfindコマンドで柔軟に一括削除もOK
- 権限エラーや削除できない問題も多くは対処可能
- 誤削除対策には、
alias
やecho
を活用しよう
Linuxでのファイル削除はシンプルな一方、強力でもあります。ルールを理解して使えば、業務の自動化やメンテナンスもスムーズになります。
