次を実行して誤ってファイルを削除しました:
rm -rf ./Desktop/myScript.sh
rm
コマンドが一時的に削除されるため、ファイルを回復できると思います。Mac OSXで削除されたファイルを復元するにはどうすればよいですか?
次を実行して誤ってファイルを削除しました:
rm -rf ./Desktop/myScript.sh
rm
コマンドが一時的に削除されるため、ファイルを回復できると思います。Mac OSXで削除されたファイルを復元するにはどうすればよいですか?
回答:
MacOSはUnix OSであり、rm
「さようなら」を意味します。GUIインターフェースを使用すると、ファイルをごみ箱に移動することができます(その後、回復することができます)が、それはあなたがしたことではありません。バックアップがある場合(たとえば、Time Machineを実行している場合)、保存されます。
明確化
厳密に言えば(@ire_and_cursesが指摘しているように)rm
、ファイルのディレクトリエントリを削除し、使用中のディスクブロックはそのままにします。ファイルがあったファイルシステムを静止できる場合、それらのブロックの内容を再発見するための高度な方法があります。損失を回復するために購入できるいくつかの回復ツールもあります。中心的な問題は、ファイルが表すディスクブロックを再利用するものが他にないことです。
MacOSには、安全なremoveコマンド(srm
)もあります。このコマンドは、ファイルをunlink
編集する前に上書きして回復不能にします。unlink
これはシェルのrm
コマンドに関連付けられている基本的なシステムコールであるため、この用語を使用します。これにより、以下のこの議論の次の部分の準備が整います。
サイドノート
[ディスクを複数回上書きしても、何十回も前に書き込まれた内容を読み取る方法があることを急いで追加する必要があります。ディスクを適切に廃棄するには、酸浴、大きなハンマー、シュレッダーが必要です。]
unlink
ファイルを作成すると、ファイルのiノードのリンクカウントが減ります。この値がゼロに達すると、ファイルはファイルシステムディレクトリから削除され、そのディスクブロックは再利用のために解放されます。これは、ファイルを開いているプロセスがない場合にのみ発生します。管理者にとって、ファイルシステムがディスクブロックの単純な合計では説明できない非常に大量のスペースを使用していることを発見するのはしばしば混乱します(などdu
)。ほとんどの場合、その理由は、開いているファイルが削除され、そのディレクトリに表示されなくなったためです。その理由は、ファイルを使用する最後のプロセスが終了するまで、ディスクブロックが使用中のままになるためです。
ファイルを開いてすぐにunlink
それを実行することは、実際には安全な一時ファイルを作成するための一般的な方法です。のようなツールlsof
は、リンクカウント(NLINK)が0のファイルを探すと、これらの非表示のファイルを公開できます。
UnixおよびLinux(MacOSはブランド化されたUnix)では、rm
可能であればファンファーレなしの「do-it」というUnixの哲学に従います。つまり、ファイルを削除する権限がある場合(つまり、ディレクトリで書き込みが許可されている場合)は、rm
要求どおりに処理します。rm='rm -i'
操作を実行する前に確認を求めるシェルエイリアスを作成できます。必要に応じて、-f
スイッチを使用してrm
オーバーライドします。エイリアスrm
は、glob
などの削除を行うときに最も役立ちますrm *.log
。つまり、リスト内のファイルをスキップするオプションがあります。
コンテンツによって異なりますが、異なるサードパーティ製ソフトウェアを使用してそれを行うことができます。例:
などなど。
App Storeで「データリカバリ」と入力すると、より多くのアプリを見つけることができます。
より高度な方法は、OSXを回復モードで起動し(または可能であればパーティションをアンマウントし)、手動で探します(スクリプトの特定のテキストを覚えている場合)。
いくつかの例:
diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"