本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「rm」コマンドです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルやディレクトリを削除する「rm」コマンドです。
「rm」は、ファイルやディレクトリを削除するコマンドです。「rm ファイル」でファイルを、「rm -r ディレクトリ」でディレクトリを中にあるファイルごと削除します。ファイルやディレクトリは複数指定できます。
rm [オプション] ファイル1 ファイル2 ファイル3……
rm -r [オプション] ディレクトリ1 ディレクトリ2 ディレクトリ3……
※[ ]は省略可能な引数を示しています
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」オプションを付ける必要があります。この場合、ディレクトリの中身も含めて全てが削除されます。
$ rm testdir (「testdir」ディレクトリを「-r」オプションなしで削除) rm: `testdir' を削除できません:ディレクトリです (「-r」オプションがないと削除できない) $ rm -r testdir (「-r」オプションを付けて実行) (「testdir」ディレクトリが削除された) $ ls testdir ls: testdir にアクセスできません:そのようなファイルやディレクトリはありません (「testdir」ディレクトリが中身ごと削除されている)
通常、存在しないファイルを削除しようとした場合はエラーメッセージが表示されますが、「-f」オプションを付けるとこのメッセージが表示されなくなります。
よく話題に上るのが“スーパーユーザー(root)で「rm -rf /」を実行”ですが、これは「ルートディレクトリを警告なしに削除する」、つまり「システム上の全てのファイルを削除する」ということです。
なお、CentOSの場合、スーパーユーザーはrmコマンドで「rm -i」が実行されるようにエイリアスが設定されています。
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.