GNU Core Utilities/rm
rm
コマンドは、ファイルやディレクトリを削除するためのコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
編集rm [オプション] ファイル名...
主なオプション(GNU coreutils版)
編集主なオプション オプション 説明 -i, --interactive
削除前に確認 -f, --force
確認なしで強制削除 -r, -R, --recursive
ディレクトリを再帰的に削除 -d, --dir
空のディレクトリを削除 -v, --verbose
削除したファイルを表示 --preserve-root
/
を誤って削除しないように保護(デフォルト)--no-preserve-root
/
の削除を許可(危険)
例
編集単一のファイルを削除
編集rm file.txt
file.txt
を削除。
削除前に確認(-i
)
編集
rm -i file.txt
削除前に rm: remove regular file 'file.txt'?
のように確認される。
強制削除(-f
)
編集
rm -f file.txt
確認なしで削除。ファイルが存在しなくてもエラーにならない。
ディレクトリごと削除(-r
または -R
)
編集
rm -r dir/
dir/
の中身をすべて削除。
確認しながらディレクトリ削除(-ri
)
編集
rm -ri dir/
各ファイルの削除を確認しながらディレクトリを削除。
削除内容を表示(-v
)
編集
rm -rv dir/
削除されたファイルやディレクトリを表示しながら削除。
/
を削除しようとした場合の挙動
編集
rm -rf /
デフォルトでは --preserve-root
により /
の削除は防がれるが、以下を使うと削除できる(非常に危険)。
rm -rf --no-preserve-root /
- 実行するとシステムが壊れるので絶対に試さないこと!
FreeBSD 版との違い
編集FreeBSD の rm
も基本的なオプションは同じですが、一部のオプションが異なります。
主な違い:
編集--preserve-root
/--no-preserve-root
が FreeBSD にはない- FreeBSD では
/
を誤って削除しないような保護はなく、rm -rf /
を実行するとそのまま削除が進む(実行しないこと!)。
- FreeBSD では
--dir (-d)
オプションが FreeBSD にはない- FreeBSD では
rmdir
を使うのが一般的。
- FreeBSD では
- GNU coreutils 版を FreeBSD で使う方法
coreutils
をインストールするとgrm
という名前で GNU 版rm
が使える。
pkg install coreutils grm -rf --no-preserve-root /
rm
は強力なコマンドなので、特に -rf
を使うときは注意が必要です。
詳しくは man rm
を確認してください。