rm コマンド

目次

概要

rm - ディレクトリやファイルを削除する

コマンドライン

rm [OPTION]... [FILE]...

対象バージョン

説明

ファイルを削除します。

$ rm ./fileA.txt

ディレクトリを削除する際は -r オプションをつけます。rmdir では空ではないディレクトリは削除できませんが、rm -r は空でないディレクトリもすべて再帰的に削除します。

$ rm -r ./dirA

ハイフン(-)で始まるファイルを削除するには、-- というオプションの終わりを示す共通オプションを指定するか、./ をつけて削除します。

$ rm -- -foo
$ rm ./-foo

オプション

-r, -R, --recursive
ディレクトリやファイルの階層を再帰的に削除します。空ではないディレクトリを中身ごと削除する場合に指定します。
$ rm -r ./dirA
-d, --dir
ディレクトリを削除します。ただし、ディレクトリは空である必要があります。
$ rm -d ./dirA
-f, --force
ファイルが存在しなくてもエラーメッセージを表示しません。
-i
削除する度に確認を求めます。
$ rm -i fileA.txt fileB.txt
rm: remove regular empty file 'fileA.txt'? y
rm: remove regular empty file 'fileB.txt'? y
-I
-i はひとつのファイルを削除する度に確認を求めますが、-I はディレクトリを削除する場合に最初の1回のみ確認を求めます。ディレクトリ以外のファイルに対しては確認を求めません。
$ rm -rI ./dirA ./dirB
rm: remove 2 argument recursively? y
--interactive=MODE
-i-I の代わりに確認を求めるタイミングを指定します。MODE には never (確認を求めない)、always (-i と同等)、once (-I と同等) のいずれかを指定します。下記の2行は同じ動作となります。
$ rm -rI ./dirA ./dirB
$ rm -r --interactive=once ./dirA ./dirB
--one-file-system
削除対象がコマンドラインで指定したディレクトリと別のファイルシステムとなる場合は削除をスキップします。例えば下記の例では /mnt ディレクトリを削除しようとしますが、他のファイルシステムをマウントしている場合、マウントされたファイルシステムは削除しません。
# rm -r --one-file-system /mnt
--no-preserve-root
通常、ルートディレクトリ(/) を削除しようとするとエラーとなりますが、エラーとならず削除できるようになります。root ユーザーでのみ使用可能です。chroot したディレクトリをすべて削除したいなど特殊なケースのみで使用します。
# rm -r --no-preserve-root /
--preserve-root
--no-preserve-root とは逆にルートディレクトリ(/) を削除しようとするとエラーにします。多くのシステムではデフォルトでこのオプションが設定されています。
# rm -r --preserve-root /
-v, --verbose
ディレクトリやファイルを削除する度にメッセージを表示します。
$ rm -rv ./dirA ./fileB
removed directory './dirA'
removed './fileB'
--help
ヘルプメッセージを表示します。
--version
バージョン情報を表示します。