私はそれが悪い習慣であることを知っていますが、怠惰なので、通常はrm -rf ./*
現在のディレクトリの内容を削除したいときに実行します(たとえば、コンパイル中のC ++プロジェクトの私のディレクトリを消去したい場合build
)。一度はタイプミスを犯しました。代わりに実行しましたrm -rf /*
(...facepalm)。幸いなことに、私のコンピュータからすべてが完全に消去される前にそれを停止することができましたが、システムが再び動作するのに1日か2日かかるほどのダメージを与えました。私も貴重なデータを失いました。
これにより、外付けハードドライブを購入し、毎日システムのスナップショットをハードドライブに保存する必要がありました。今質問があります。誤って実行した場合rm -rf /*
(sudoユーザーではない場合)、この内容も削除されますか?それとも私の外付けハードドライブ(毎日のスナップショットの目的を失う)ですか?それとも、ハードドライブをアンマウントしてデータを保存しますか?
答え1
外付けハードドライブをマウントした状態で実行すると、実行rm -rf /*
中のユーザーが削除できる外付けハードドライブ上のすべてのファイルが実際に削除されます。ハードドライブはマウント解除されません。
これらのリスクを最小限に抑えるために、バックアップを開始する前にスクリプトから外付けハードドライブをマウントし、後でマウント解除することができます。ただし、何らかの理由でマウント解除に失敗した場合、外付けハードドライブがバックアップ後もマウントされたままになる危険性があります。次にスクリプトが実行されるまでバックアップは完了します。
より良い選択肢は、バックアップ中のマシンに存在しない、または少なくともマウントされたファイルシステムではなく、一部のターゲットに毎日バックアップを実行することです。これにより、ファイルシステム操作で誤ってデータを削除してもバックアップが破損することはありません。