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 も基本的なオプションは同じですが、一部のオプションが異なります。

主な違い:

編集
  1. --preserve-root / --no-preserve-root が FreeBSD にはない
    • FreeBSD では / を誤って削除しないような保護はなく、rm -rf / を実行するとそのまま削除が進む(実行しないこと!)。
  2. --dir (-d) オプションが FreeBSD にはない
    • FreeBSD では rmdir を使うのが一般的。
  3. GNU coreutils 版を FreeBSD で使う方法
    • coreutils をインストールすると grm という名前で GNU 版 rm が使える。
    pkg install coreutils
    grm -rf --no-preserve-root /
    

rm は強力なコマンドなので、特に -rf を使うときは注意が必要です。 詳しくは man rm を確認してください。