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 を確認してください。