rm(アールエム)はPOSIXおよびSingle UNIX Specificationで規定されているコマンドである。
rmは「remove」の略であり、ファイルシステムよりファイルを削除するために使用される。AT&T UNIXの最初のバージョンから存在していた。
rmは引数に指定されたファイルを削除する。デフォルトではディレクトリの削除は行なわない。-rや-Rオプションを使用すると、指定されたディレクトリ以下の全ディレクトリツリーが削除される。引数のパスが . または .. で終わる場合はエラーとなる。
POSIXオプションを次に示す。
スティッキービットのセットされているディレクトリ配下のファイルは、そのファイルの所有者かディレクトリの所有者かスーパーユーザーでないと削除できない。
-
で始まるファイルの削除rmコマンドの多くの実装では、-
で始まるファイル名を引数に指定する目的で、オプション終了を意味する特殊オプション(--
または -
)が用意されている。例えば前者の場合、ファイル -f
を削除する指定は rm -- -f
とすれば良い。
ただし、これら特殊オプションが存在しなくとも、パス名を付加した rm ./-f
とすることで回避可能である。
これらは mv (UNIX) や cp (UNIX) でも同様のことが言える。
例えば、スーパーユーザーで以下のコマンドを実行するとファイルシステム /配下のファイルがすべて削除されてしまう。(一部ファイルを除く)
rm -rf /
またはrm -rf /*
但し一部のLinux系OS(CentOS 5以降 RHEL3以降)ではエラーが返る事があるが、後者コマンドは前述したOSでも実行されてしまうので注意が必要である。