Rm (UNIX)

rm（アールエム）はPOSIXおよびSingle UNIX Specificationで規定されているコマンドである。

rmは「remove」の略であり、ファイルシステムよりファイルを削除するために使用される。AT&T UNIXの最初のバージョンから存在していた。

 振る舞い 
rmは引数に指定されたファイルを削除する。デフォルトではディレクトリの削除は行なわない。-rや-Rオプションを使用すると、指定されたディレクトリ以下の全ディレクトリツリーが削除される。引数のパスが . または .. で終わる場合はエラーとなる。

POSIXオプションを次に示す。
-f 存在しないファイルを指定してもエラーを返さない。確認問い合わせをしない。
-i すべての削除に対して問い合わせを表示する。
-r または -R  指定以下のディレクトリツリーを削除する。

スティッキービットのセットされているディレクトリ配下のファイルは、そのファイルの所有者かディレクトリの所有者かスーパーユーザーでないと削除できない。

 名前が - で始まるファイルの削除 
rmコマンドの多くの実装では、- で始まるファイル名を引数に指定する目的で、オプション終了を意味する特殊オプション(-- または -)が用意されている。例えば前者の場合、ファイル -f を削除する指定は rm -- -f とすれば良い。

ただし、これら特殊オプションが存在しなくとも、パス名を付加した rm ./-f とすることで回避可能である。

これらは mv (UNIX) や cp (UNIX) でも同様のことが言える。

 注意事項 
例えば、スーパーユーザーで以下のコマンドを実行するとファイルシステム /配下のファイルがすべて削除されてしまう。(一部ファイルを除く) 
rm -rf / またはrm -rf /*

但し一部のLinux系OS(CentOS 5以降 RHEL3以降)ではエラーが返る事があるが、後者コマンドは前述したOSでも実行されてしまうので注意が必要である。

 外部リンク 
 Manpage of RM man page、JM Project（GNU 版）
 rm(1) man page（SunOS リファレンスマニュアル）
 rm(1) man page（HP-UX リファレンス）

Category:標準UNIXプログラム