rm -rf /*」というコマンドをご存じでしょうか?

このコマンドは、Linux や Unix 系のオペレーティングシステムで使われるコマンドなのですが、とても危険なコマンドとして知られています。

その理由は…

rm -rf /* =滅びの呪文(バルス)

「rm -rf /*」やったらどうなる?滅びの呪文を唱えてみた

このコマンドは、一言でいうと「滅びの呪文」です。

ざっくりいうと「root ディレクトリ配下を全部消しちゃう」コマンドです。

ただし、「bash に組み込まれているコマンドは生き残る」といった情報もあるので、もしかしたら実装されている shell の組み込みコマンドは残るのかもしれないですね…。

とりあえず、このコマンドが何を意味しているのかは気になるので、その点を見ていきましょう。

コマンドの意味

先ほど「root ディレクトリ配下を全部消しちゃう」とお伝えしましたが、どういった仕組みなのかを解説していきます。

「rm -rf /*」やったらどうなる?滅びの呪文を唱えてみた

rm」は「remove」の略で、ファイルやディレクトリを削除するためのコマンドです。

この後に続くのはオプションになります。

「rm -rf /*」やったらどうなる?滅びの呪文を唱えてみた

-r」は「recursive」の略で、ディレクトリの階層構造を辿って、その中にあるすべてのファイルやディレクトリを対象に操作を行うことを意味します。

「rm -rf /*」やったらどうなる?滅びの呪文を唱えてみた

-f」は「force」の略で、実行確認のプロンプトを無視して強制的にコマンドを実行するオプションです。

ここからは、削除対象の指定についてです。

※オプションを複数追加する場合には「-」を省略することができます。

「rm -rf /*」やったらどうなる?滅びの呪文を唱えてみた

/」はルートディレクトリを意味します。

ルートディレクトリはシステムの全てのファイルやディレクトリの最上位に位置します。

「rm -rf /*」やったらどうなる?滅びの呪文を唱えてみた

*」はワイルドカードで、全てのファイルやディレクトリを意味します。トランプでいうところのジョーカーですね。

まとめると、このコマンドはルート以下、ディレクトリもファイルも関係なくすべてを強制的に削除してしまうコマンドです。

なるほど「滅びの呪文」の異名を持つわけでけす。

コマンドの動作

「rm -rf /*」を実行すると、次のことが起こります。

1. 全てのファイルとディレクトリを再帰的に削除

そもそも「rm」コマンドは、ファイルの削除を行うコマンドです。

そのコマンドに「-r」オプションを追加することによって、ディレクトリの中にある全てのファイルやサブディレクトリすべてが削除対象になります。

2. 削除確認をしない

さらに「-f」オプションを追加することによって、削除してよいかどうかの確認を省き、強制的に削除が行われます。

3. ルートディレクトリ以下のシステム全体が削除対象

「/*」によって、システムの最上位以下、全てのファイルとディレクトリが削除対象になります。

ということで、このコマンドを実行すると、root 配下、システムの全てのデータが削除されるため、システムは完全に破壊されます。

ってか、なくなります。

これには重要なシステムファイルとか関係なく、遠慮も忖度も一切なく、本当にすべて削除するため、システムは再起動すらできなくなります。

…というのは、おそらくアナタも何かで見聞きしたことがあるかもしれませんね。

滅びの呪文を唱えてみた

実際にコマンドを実行してみました。

4:45から仮想環境で各種ディストリビューションをテストしており、15:14では実機でテストしています。

https://youtu.be/BLJuSQ92Ng8

今回のまとめ

個人的な所管ですが、滅びの呪文を唱えた後でも微かに動くのは、OS の起動時に RAM にロードされるものが残っているためではないかと思います。

テストの後、パーティションなどをチェックしてみたところ、ディレクトリがいくつか残っていました。

が中身は全て空っぽになっており、最後の力を振り絞っていた形跡のようにも感じます。

そのため、Puppy Linux などのように、RAM にシステムをロードするタイプの Linux の場合には、ストレージの中身がきれいさっぱりなくなってしまうに違いありません。

そのうち、時間を確保して検証してみたいとは思っています。