Linuxでrm -rfを打つ前に手が止まった日の話|現役講師が語る削除コマンドへの恐怖と20年間変えていない確認の習慣

HOMEリナックスマスター.JP 公式ブログLinux学習ガイド > Linuxでrm -rfを打つ前に手が止まった日の話|現役講師が語る削除コマンドへの恐怖と20年間変えていない確認の習慣
宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「rm -rfを打とうとして、指が止まった。」

2001年の秋、SEとして初めての現場に配属されて3ヶ月が経った頃の話です。先輩から「このディレクトリ、もう使わないから消しておいて」と言われ、端末に向かいました。コマンドを打ちかけた瞬間、なぜか手が止まりました。

この記事では、20年以上Linuxサーバーを運用してきた私が、その「手が止まった日」の経験と、そこから身についた削除前の確認習慣をお伝えします。3,100名以上を指導してきたセミナーでも毎回話す、現場で安全に作業するための「型」の話です。

この記事のポイント

・rm -rfは確認なしにディレクトリごとファイルを再帰削除する危険なコマンドだ
・「怖い」と感じることは現場で安全に働くための大切な感覚だった
・手が止まったSE時代の実体験と、そこから身についた確認の型を解説する
・20年間変えていない「削除前の3つの習慣」を紹介する


Linuxでrm -rfを打つ前に手が止まった日の話|現役講師が語る削除コマンドへの恐怖と20年間変えていない確認の習慣
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

「rm -rf」が怖いのは正しい感覚だ

Linuxを学び始めた頃、「rm -rfは絶対に気をつけろ」と耳にした人は多いはずです。その感覚は正しい直感です。

rm -rfを一言で表すと、「ディレクトリとその中身のすべてを、確認なしに再帰的に削除するコマンド」です。

-r(--recursive):ディレクトリ配下を再帰的にすべて削除する
-f(--force):確認のプロンプトを表示せず強制的に削除する

この2つが組み合わさることで、「問い合わせなしに、ディレクトリごと根こそぎ消す」動作になります。実行した瞬間、そこにあったファイルはゴミ箱にも入らず消えます。

「慣れてきた頃が一番危ない」——私が現場でよく見かけるのが、ある程度コマンドが使えるようになったエンジニアが「これくらい大丈夫」と手順を省いてミスをするケースです。

SE時代——初めて「消す」作業を任された日のこと

1. 「このディレクトリ、もう要らないから消しておいて」

2001年の秋、私はSEとして初めての現場に就きました。当時はLinuxサーバーの管理をひとつひとつ先輩から教わりながら覚えていた時期です。

ある日の夕方、先輩からこう言われました。

「/home/server/old_backup って、去年使ってたバックアップのゴミだから。もう要らないから消しておいて」

「わかりました」と答えて端末に向かいました。

2. コマンドを打ちかけて、手が止まった

rm -rfで消すしかない。それは分かっていました。

端末に向かい、「rm -rf /home/server/old_backup」と打ちかけたとき——Enterを押す指が止まりました。

「なんか嫌な予感がする。」

説明できないけれど、何かが引っかかる。Enterを押す前に、まず中身を確認することにしました。

# 削除する前に中身を確認した $ ls -la /home/server/old_backup/ total 56 drwxr-xr-x 4 webadm webadm 4096 Oct 10 2001 . drwxr-xr-x 18 root root 4096 Oct 1 2001 .. drwxr-xr-x 2 webadm webadm 4096 Oct 10 2001 db_dump_2000 drwxr-xr-x 2 root root 4096 Oct 8 2001 config_backup -rw-r--r-- 1 webadm webadm 2048 Oct 8 2001 restore_notes.txt

「config_backup」というディレクトリが目に入りました。「バックアップのバックアップ?」という気持ちになり、先輩を呼びに行きました。

「あのー、/home/server/old_backup の中に config_backup ってディレクトリがあるんですが、これも消していいですか?」

先輩がすぐに来て画面を確認すると、顔色が変わりました。

「あ、ちょっと待って。それ、本番の設定ファイルのバックアップだ。消したらマズい」

3. 助かった——そして習慣になった

もしそのままEnterを押していたら、本番サーバーの設定ファイルの唯一のバックアップが消えていました。後から確認したところ、config_backup 内の設定ファイルは他の場所に複製されていなかったことが分かりました。

「確認して良かった」というより、「何かが引き止めてくれた」という感覚でした。

この経験から、私の中に「削除前に必ず中身を確認する」という習慣が根付きました。以来20年以上、私はrm -rfの前に毎回同じ手順を踏んでいます。

20年間変えていない削除前の3つの確認習慣

セミナーで3,100名以上を指導してきた中で、「ファイルを誤削除して困った」という経験を持つ受講生は珍しくありません。その多くが「確認の手順を省いた」と話します。以下は、私が20年以上続けている削除前の習慣です。

1. ls -la でまず目視確認する

rm -rfを実行する前に、削除対象のディレクトリやファイルを必ずlsコマンドで確認します。

# 削除前に必ず中身を確認する $ ls -la /path/to/target/ # サブディレクトリの中身まで確認したい場合 $ ls -laR /path/to/target/ | head -40

「分かっているから確認しなくていい」と思わないことが重要です。「分かっているつもり」と「確認した」は全く別物です。ファイル数が少ないときも、必ず一度は目で確認します。

2. echo rm -rf で削除対象を「見える化」する

コマンドの先頭に echo を付けることで、「実際には削除せず、削除されるパスだけを表示する」確認ができます。

# echo を先頭に付けると実行はされず、削除対象のパスだけが表示される $ echo rm -rf /path/to/target/ rm -rf /path/to/target/ # ワイルドカードを使う場合は特に有効(シェルが展開した結果を確認できる) $ echo rm -rf /tmp/sess_* rm -rf /tmp/sess_abc123 /tmp/sess_def456 /tmp/sess_ghi789 ... # 意図した対象だけが含まれることを確認してから、echo を外して実行する

ワイルドカード(*)を含むコマンドで echo なしにそのまま実行するのは危険です。特にディレクトリを間違えていた場合、取り返しがつきません。先に echo で確認する習慣を身につけてください。

3. バックアップの有無を口に出して確認する

削除作業の前に、「このデータ、バックアップはあるか」を声に出して確認します。独り言でも構いません。

バックアップがある場合:それでも「いつ取ったか」「どこにあるか」を把握してから削除する
バックアップがない場合:本当に消していいのかを再確認する。念のためtar等でアーカイブしてから削除することを検討する

「口に出す」というのがミソです。頭の中で「確認した気になる」だけでなく、声に出すことで認識が強化されます。チームでの作業であれば、隣の人に一言伝えるだけでも安全確認になります。

20年以上サーバーを運用してきた経験から言うと、削除作業で事故を起こした人のほぼ全員が「バックアップのことを考えずに実行した」という点を後悔していました。

誤ってrm -rfで削除してしまった場合の対処法

確認習慣を徹底していても、操作ミスはゼロにはできません。万が一 rm -rf を誤実行してしまった場合の初動対処を知っておくと、被害を最小限に抑えられます。

すぐにディスクへの書き込みを止める:削除後もディスクに新しいデータが書き込まれると復元率が下がります。ミスに気づいたら作業を中断し、可能であればシステムを読み取り専用でマウントし直す
extundelete / photorec で復元を試みる:ext4ファイルシステムの場合、extundeleteコマンドで削除済みinodeから復元できることがあります。photorec(testdisk)はファイルシステムに依存しない低レイヤーの復元ツールです
バックアップから戻す:バックアップがある場合は、ファイル復元より確実性が高く早い。バックアップがない場合、今後のために「事後にバックアップを設計する」教訓として記録する

ただし正直に言うと、「削除ミスへの対処法を覚える」より「削除ミスをしない習慣を身につける」方が現場では何倍も価値があります。前述の3つの確認習慣は、まさにそのためにあります。

まとめ

「怖い」と感じて手が止まった——それがSEとして正しい反応でした。危険なコマンドを前にして「怖い」と感じる感覚は、大切にすべき直感です。慣れてきた頃に省いた確認の一手間が、大きな事故につながることがあります。

削除前にやること 確認の内容
ls -la で目視確認 削除対象の中身・サブディレクトリを把握する
echo rm -rf で見える化 削除されるパスを実行前にすべて確認する
バックアップ有無の口頭確認 削除後に戻せる状態かを声に出して確認する
ファイル削除をはじめとしたLinux作業中のヒヤリハット全般については「Linuxの本番サーバー作業でヒヤリハットした経験談|現役講師が20年で学んだ事故を防ぐ3つの確認習慣」もあわせてご覧ください。作業ミスを繰り返さない習慣を体系的に身につけたい場合は「Linuxの作業ミスを繰り返さない人がやっていること」も参考になります。

削除コマンドで焦らない「本物のLinux力」を身につけませんか?

「Enterを押す前に迷ってしまう」という方は多いです。現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。


Linux無料マニュアル(図解60P) 名前とメールで30秒登録