「rm -rf〜」コマンドを取り消しますか?


115

「〜」という名前を付けたくないフォルダがあったので、コマンドラインから入力しました

rm -rf ~

誤ってホームフォルダーを削除しました(〜が/ home / usernameに解決されたため)。戻る方法はありますか、基本的にアカウントを最初から再作成する必要がありますか?


18
どのファイルシステム?
タルネーカルマン

6
明らかにあなたの人々はユーモアのセンスがありません。
ブロムクヴィスト

21
これはあなたの質問に直接答えるものではありませんがrm -rf "~"、引用符を使用すると、展開する代わりにそのリテラル名が検索されます。しかし、とにかくそれを使用するのが怖いです-私は正しいディレクトリを取得することを確認するために、lsまたはcd最初に何かを使用するか、GUIファイルマネージャからフォルダを削除します。おそらく、最初にdir(mv "~" tilde)の名前を変更し、確認してから削除します。
ヘンリックN

2
将来的には、コマンドラインでrmをインタラクティブに使用しないでください。trashのようなユーティリティを使用すると、1)同じ間違いを二度と行えなくなり、2)トラブルの原因となるrmの貧弱なシェルエイリアスに慣れることができません。
フレッドナーク

9
@HenrikN:「〜」の代わりに./~は同じことを行いますが、ダッシュで始まりオプションのように見える他の一般的な問題のあるファイル名でも動作します。
フレッドナーク

回答:


148

一般的に、簡単な方法はありません。

毎日のバックアップから復元できます。


194
バックアップに関する発言は残酷であり、100%のポイントです。
ベンジャミンバニエ

3
OS Xにはバックアップがどのようにのためのバー設定すべきである(特にタイムカプセルで)仕事を。Ubuntuで同じことをする方法については、maketecheasier.com /…を参照してください。
トールビョールンラヴンアンデルセン

4
@ThorbjørnRavn Andersen-これは、Time Machineが神経衰弱の場合を除きます。タイムマシンでは、6か月に2回、フリークアウトが発生しました。
偽の名前

オフサイトバックアップは優れており、かなり手頃な価格です。Backblaze(Mac / Windows)をコンピューター1台あたり月額5ドルで使用しています。多くの人がCrashplan(Mac / Windows / Linux)を好むようです。
ヘンリックN

23
毎日何????
リュックM

66

他の人(@RiMMER@Adam@James Tなど)は、ほとんどのファイルシステムでは、データは実際にはゼロ化されず、削除されるだけなので、ほとんどまたはすべてのデータ(おそらくファイル名なし)を回復できると述べていますファイルテーブルから。これはLinuxだけに当てはまることではありません-WindowsとMacにも同じことが言えます。

しかし、誰も最も重要なことについて言及していません- あなたのコンピューターの電源を切ります。今。

多くのプログラム(現在使用しているインターネットブラウザを含む)は、データをハードドライブにキャッシュします。そして、ほとんど何でも、コンピュータのサイズを変更したり、スワップファイルに書き込むことができます。これらは両方とも、ハードドライブ上の空きセクターに書き込みを行い、貴重なデータを上書きする可能性があります。

したがって、コンピューターの電源を切り、ハードドライブを取り出して別のコンピューターに入れます。ハードドライブを読み取り専用としてマウントし、ファイルを別のハードドライブに復元します。興味のあるものをすべて回復したら、そのときだけ -元のドライブにファイルを書き戻します。


11
シャットダウンするプロセスでさえ、ハードドライブに書き込むことができます。すぐにコンピュータのプラグを抜くことをお勧めします。これは間違いなく事態をさらに悪化させる可能性があるためです。しかし...データの重要性によっては、検討することをお勧めします。
BlueRaja-ダニーPflughoeft

1
すぐにアンマウントおよび/またはなどをシャットダウンした後、PCの電源をオフにすることなく、ライブ読み取り専用で再マウントすることが可能となるドライブ/ OS /マウントポイントに応じて、
マシューScharley

1
killall rmオフにする代わりに。
フレッドナーク

1
ホームディレクトリの大きさとハードドライブの大きさによっては、データを含む無料のセクターを上書きする可能性はかなり低くなります。
マイクスピード

この方法を使用してテキストファイルを回復するのに多くの困難はありません(その内容について大まかな知識がある限り)が、バイナリファイルは基本的に不可能なほど困難です。
悪魔の子犬

13

バックアップの重要性を実際に学習し、詳細に注意を払い注意を払う前に、すべてのLinuxユーザーは、ある時点でこの苦痛な教訓を直接学ばなければならないと思います。

たとえば、奇妙なファイルを削除する場合、副作用がなく、データを変更しないコマンドを最初にその奇妙なファイルで実行できます。たとえば、実行しましたか

cd ~

フォルダーを削除する前に、フォルダーではなくホームフォルダーにディレクトリを変更することが~わかりました。あなたは真のコマンドを学ぶために十分なトラブルシューティングの手順を経るたら、正常にする必要があるだろうcd~履歴から最後のコマンドを引き出した後、変更するフォルダ、その後、あなたは上矢印キーを押すことができるcdrmして、その後だけにして、フォルダを削除しよう。

永続的なアクションを実行する前に、このような手順を実行することをお勧めします。これは永続的でも絶対確実でもありませんが、副作用のあるアクションを実行するときにこの程度の注意を払えば、これらの瞬間を防ぐ可能性がはるかに高くなります。


4
あなたが跳躍する前、そしてあなたの前を見てlsくださいrm
ローレンス


6

testdiskを使用して個々のファイルの削除を取り消すことができます。これは、ext2とNTFSでのみ機能します(ただし、試してみる価値はあります)。

ext3またはext4を使用している場合、photorecを使用して既知のファイルを回復できます。これにより、必要以上に回復する可能性があります。Photorecはファイル名情報なしでファイルを回復するので、ファイルを調べるのは面倒です。


4

十分な大きさの外付けドライブがある場合は、別の最も安全なオプションがあります。空きスペースを含むホームパーティション全体を保存するのに十分なスペースが必要です。

CDから起動し、ホームドライブをマウントしないでください。外付けドライブをマウントします。ホームドライブパーティションを外部ドライブのファイルにddします。ループバックデバイスとしてファイルをマウントします。元のファイルシステムに損傷を与えないという知識があるため、このイメージで削除を取り消す作業を行います。ファイルシステムによっては、試してみることがたくさんありますが、そのうちのいくつかは潜在的に破壊的です。

Reiser4のベータ版では、読み取り専用でマウントしてもどうなるかわからなかったので、これで救われました。ジャーナルの書き込みがまだ可能であった当時のどこかで読みました。

また、死にかけているドライブからデータを保存するための良いテクニックです。


1
+1は、ほとんどのジャーナルされたFSで、読み取り専用のマウントでさえ、ジャーナルのアクティビティの一部としてデータを書き込む可能性があることに言及しています。
-sleske

2

リサイクルされていないiノードを検査してファイルを回復する手法があります。削除後にファイルシステムに書き込むデータが多いほど、データを回復する可能性は低くなります。偶発的なデータ削除から回復するための最善の戦略は、バックアップから復元することです。


2
alias rm="rm -i"

Bashシェルを使用していると仮定します(これを.bashrcファイルに入れて、開いた新しいシェルに保持されるようにします)。

これにより、削除するものを確認するようにrmに求められるはずです。これは、特に-rfを実行している場合に便利ですが、プロンプトでホームディレクトリへのフルパスに '〜'を展開します。ファイル '〜'を削除するのではなく、実際にはhomedirを削除する手がかり。

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

これは技術的にはあなたの質問に対する答えではありませんが、将来そのような問題を避けるのに役立つかもしれません。

編集:一部の人々は、「rm」コマンドに注意を怠るので、このテクニックを使用することを思いとどまらせるかもしれません。私の経験では、これは真実とは程遠い。実際には、エイリアスの効果は、「rm -rf」の使用を思いとどまらせることです-あなたが知っているように、あなたは答えたくない多くのプロンプトをもたらすでしょう-そして、プロンプトなしの「rm -rf」を得るために「rmコマンドを/ bin / rm(またはその他)として意図的に参照する必要があります。これは、一般的に「rm」コマンドをより意識的かつ意図的に使用することにつながります-常に使用する前に、「rm」または「/ bin / rm」の精神的な選択でrmを使用する必要がありますログインする。そして、rmを使用する前に誰もが考えていた世界は、本当に安全な世界になるでしょう!


2
使用しているシステムに依存します。少なくともRHEL5およびOS X 10.6では-f-iオプションをオーバーライドします。
ダニエルベック

知らなかったよ。私はYMMVにアドバイスを追加し、「これを自宅で、またはおそらくもっと重要なことに職場で試さないでください」と言っています。
aaa90210

9
これを行うと、いつかこのエイリアスを使用できなくなります(別のコンピューターに座っているか、どこかにsshしているかもしれません)。また、セーフティネットに使用されているrmを使用します。あなたは後悔することをするでしょう。
フレッドナーク

1
@FredNurkまさに。最善の方法は、-iを自分で追加するか、-fオプションを使用しないことです。
アルダXiの

削除するファイルがたくさんあるときは、から始めますrm -i my_list_of_files。それから私は、CTRL-Cを使用し、それを修正するために私のコマンドをリコールrm -rvf my_list_of_files
リュックM

2

データについてごめんなさい。他の誰もがあなたのデータの問題に対処する方法に夢中になっていますが、次にフォルダcaledが表示されたときにどう対処するかについての情報があります~

  1. それを作成した人を見つけ、彼らが二度とそれをしないことを確認してください。
  2. -rf削除を行うためにrmを使用したり、強力な引数を使用したりしないでください。代わりに、それをうまくゆっくりと実行し、何が起きているのかを確認できるようにしてください。シェルでエスケープすることにより、ホームディレクトリに展開せずにチルダを入力することができます。理論上は可能 ですrm -rI \~、さらに一歩進めることができます。
    1. 最初に、cd \~そのフォルダにINTOを取得するために、多分pwdあなたがそこに着いたかどうかをチェックするために使用します。あなたがそこにいる間に、その内容を削除してください。ここでも注意するが、あるフォルダを一掃rf -rI *し、あなたが取得する必要がある場合は.*、あまりにも。
    2. 次に、で上に戻りcd ..、でディレクトリを削除しrmdir \~ます。

1

.snapshotをcdしてファイルを復元するだけです。しかし、私は職場でこれを行っており、.snapshotディレクトリがどこから来たのかわかりません。多分それはLinuxの機能だったかもしれませんが。


1

回復ツール-コマンドライン:

回復ツール-Gui:

情報:

私の個人的な経験では、「UFS Explorer」とphotorecを使用してデータを取得します

(1)=オープンソースではなく、無料ではない

(2)=オープンソースではなく、無料

(3)=オープンソースで無料

(4)= ntfsをサポートする

(5)=ディレクトリ構造機能を備えている


-3

rmは永遠です。

これは今は役に立ちませんが、将来はrmを使用しないか、実際に自分で強制するために、ファイルをゴミ箱フォルダーに移動するrmという名前のパスに以前に見つかったスクリプトを追加して、いつか削除します(許可あなたは間違いを犯し、SOLではありません)。


7
これに関する唯一の問題は、rmコマンドを使用すると少し速くなり、会社のLinuxサーバーに便利な
復元

2
-1これは、投票権のない回答と同じ問題を抱えています(そのため、他の人のコメントを盗みます)。ある日、このスクリプトを適切な場所に置いていない場合。セーフティネットに慣れているrmを使用し、後悔することをします。
DMA57361

@Coreyこれは悪い習慣を引き起こす可能性があることに同意しますが、+ 1がこの回答があまりにも重く支持されているために+1
ジョンミリター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.