連載
» 2016年06月06日 05時00分 UPDATE

Linux基本コマンドTips(20):【 rm 】コマンド――ファイルを削除する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「rm」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルやディレクトリを削除する「rm」コマンドです。

rmコマンドとは?

 「rm」は、ファイルやディレクトリを削除するコマンドです。「rm ファイル」でファイルを、「rm -r ディレクトリ」でディレクトリを中にあるファイルごと削除します。ファイルやディレクトリは複数指定できます。


rmコマンドの書式

rm [オプション] ファイル1 ファイル2 ファイル3……

rm -r [オプション] ディレクトリ1 ディレクトリ2 ディレクトリ3……

※[ ]は省略可能な引数を示しています



rmコマンドの主なオプション

 rmコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-f --force 存在しないファイルを無視する(確認も行わない)
-i --interactive 削除前に確認する
-v --verbose 経過を表示する
-d --directory unlinkでディレクトリを削除する
-r,-R --recursive ディレクトリを再帰的に削除する
--preserve-root 「/」を削除しない(デフォルト)(※)
--no-preserve-root 「/」を特別なものとして扱わない(※)
(※)「--preserve-root」「--no-preserve-root」が有効かどうかは、rmコマンドのバージョンによって異なります


ファイルを削除する

 「rm ファイル」でファイルを削除します。ファイルは複数指定することも可能で、例えば「rm *」と指定すると、カレントディレクトリのファイルが全て削除されます。

 対象ファイルを確認しながら削除したい場合は、「-i」オプション」を付けます。なお、ワイルドカード(*)で指定するときは、「-i」オプションを付けた方が安全です。

コマンド実行例

rm file

(「file」を削除する)

rm -i *

(カレントディレクトリのファイルを確認しながら削除する)


$ ls *	(カレントディレクトリのファイルを確認)
file1  file2  file3
$ rm -i *	(カレントディレクトリのファイルを確認しながら削除)
rm: 通常ファイル `file1' を削除しますか? y	(「y」で削除)
rm: 通常ファイル `file2' を削除しますか? y
rm: 通常ファイル `file3' を削除しますか? y
$ ls *
$ ls: * にアクセスできません: そのようなファイルやディレクトリはありません	(ファイルは全て削除された)

 「-i」オプションを付けないと、指定したファイルが「確認メッセージなし」で削除されます。

$ ls *	(カレントディレクトリのファイルを確認)
file1  file2  file3
$ rm *	(カレントディレクトリのファイルを削除)
$	(処理終了、カレントディレクトリのファイルが全て削除されている)


メッセージを表示しながら削除する

 「-v」オプションを付けると、実行内容を表示しながら削除します。

$ ls *	(カレントディレクトリのファイルを確認)
file1  file2  file3
$ rm -v *	(メッセージを表示しながら削除)
`file1' を削除しました
`file2' を削除しました
`file3' を削除しました
$


ドットファイル(隠しファイル)を削除する

 「rm *」のように指定しても、「ドットファイル(隠しファイル)」は削除対象になりません(※)。ドットファイルを削除したい場合は「rm .dotfile」や「rm .dot*」のようにファイル名を指定するか、ディレクトリごと削除します。

※「ドットファイル」は、ドット(.)から始まるファイル名を持つファイルのことで、「隠しファイル」とも呼ばれます。





「-r」オプションでディレクトリを中身ごと削除する

 ディレクトリを削除する場合は、「-r」オプションを付ける必要があります。この場合、ディレクトリの中身も含めて全てが削除されます。

$ rm testdir	(「testdir」ディレクトリを「-r」オプションなしで削除)
rm: `testdir' を削除できません:ディレクトリです	(「-r」オプションがないと削除できない)
$ rm -r testdir	(「-r」オプションを付けて実行)
	(「testdir」ディレクトリが削除された)
$ ls testdir	
ls: testdir にアクセスできません:そのようなファイルやディレクトリはありません	(「testdir」ディレクトリが中身ごと削除されている)


「-f」オプションでエラーメッセージを表示しない

 通常、存在しないファイルを削除しようとした場合はエラーメッセージが表示されますが、「-f」オプションを付けるとこのメッセージが表示されなくなります。

 よく話題に上るのが“スーパーユーザー(root)で「rm -rf /」を実行”ですが、これは「ルートディレクトリを警告なしに削除する」、つまり「システム上の全てのファイルを削除する」ということです。

 なお、CentOSの場合、スーパーユーザーはrmコマンドで「rm -i」が実行されるようにエイリアスが設定されています。


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。