Linux:他の端末からまだCDに入っている削除されたディレクトリの回復

Linux:他の端末からまだCDに入っている削除されたディレクトリの回復

/path/to/dir誤ってアプリケーションからディレクトリとその内容の両方を削除しました。

しかし、まだターミナルウィンドウが開いていcdます/path/to/dir

Q:再帰的に復元する方法はありますか/path/to/dir

これはlsof私に次のことを与えます:

$ lsof | egrep '/path/to'
bash       3113              hs  cwd       DIR              252,0     4096 42207179 /path/to
bash       3487              hs  cwd       DIR              252,0        0 42207253 /path/to/dir (deleted)

さらに、これを行うと...

$ ls /proc/3487/fd/
0  1  2  255

$ cd /tmp
$ dd if=/proc/3487/fd/255 of=recovered.dir bs=1M

...ddコマンドは何もせず、そのままでrecovered.dirサイズが大きくなりません。ここでは、プロセス3487/path/to/dirがファイル記述子255にディレクトリが開いていると仮定する。したがって、私ddまたはcatそれでツリー全体を復元できます/path/to/dir

lsof削除されたアイテムの回復を使用する方法についての多くの記事がインターネット上にあります。定期的なファイルですが、削除されたファイルを回復するために使用されません目次

速い答えに心から感謝します!

答え1

残念ながら、あなたが望むことをすることはできません。

ディレクトリは開いている可能性がありますが、ディレクトリ内のファイルはディレクトリ自体の一部ではありません。このディレクトリにはファイル名のみが保存されます。これに加えて、ファイルが削除されるにつれてディレクトリも変更され、そのファイルが削除されました。

つまり、個々のファイルが開かれていない限り、この方法では回復できません。

関連情報