GNU/Linux >> Linux の 問題 >  >> Ubuntu

削除したがまだどこかで開いているファイルを回復する方法は?

この質問は、削除されたファイルを回復する方法に関連していますか?ただし、性質は少し異なります。

~/somethingという名前のファイルがあるとします。 テキストエディタで開きます。さらに、ターミナルを開いて、ファイルがまだテキストエディタで開いている間に次のコマンドを実行するとします。

rm ~/something

これにより、ファイルが削除されます。今、気が変わってファイルを取り戻したいと思ったとします。ファイルはまだテキストエディタで開いているため、ディスクまたはファイルシステムからまだ削除されていません

それを回復する方法はありますか?

承認された回答:

編集中にファイルを開いたままにしておくテキストエディタがあるかどうかはわかりません。通常(つまりEmacsでは)、ファイルはRAMのバッファーに読み込まれ、ファイルが閉じられます。 RAMでのみ編集します。バッファを保存すると、ファイルが開かれ、書き込まれ、再び閉じられます。 ps auxw | grep your_editor エディターのPIDを見つけるには、lsof -p your_PID まだ開いているファイルを確認します。

一方、ファイルがまだエディタのバッファにある場合は、保存するだけです。

しかし、それはあなたの質問ではなかったので、catを使用しているとしましょう。 あなたの編集者として、そしてファイルは本当にまだ開いています:

% cat >the_file.txt
Hello world!
^Z
zsh: suspended  cat > the_file.txt
% rm the_file.txt 
% ls -l the_file.txt
ls: cannot access the_file.txt: No such file or directory

lsof -nを使用できます 開いているすべてのファイルとgrepを表示するには ファイル名を検索します。

% lsof -n | grep the_file.txt
cat  2145  elmicha  1w  REG  9,1  13 108003357 /home/elmicha/tmp/the_file.txt (deleted)

2番目の列には、catのPIDが表示されます。 指図。 /procファイルシステムの対応するディレクトリとfdに変更できます。 (ファイル記述子)サブディレクトリ:

% cd /proc/2145/fd
% ls -l
total 0
lrwx------ 1 elmicha elmicha 64 2012-11-07 00:22 0 -> /dev/pts/4
l-wx------ 1 elmicha elmicha 64 2012-11-07 00:22 1 -> /home/elmicha/tmp/the_file.txt (deleted)
lr-x------ 1 elmicha elmicha 64 2012-11-07 00:22 15 -> /proc/4501/auxv
lrwx------ 1 elmicha elmicha 64 2012-11-07 00:22 2 -> /dev/pts/4

これで、「ファイル」1をコピーできます。 別のファイルへ:

% cp 1 ~/tmp/the_old_file.txt

ほら、そこにあります:

% cat ~/tmp/the_old_file.txt
Hello world!

Ubuntu
  1. 開いているが削除された大きなファイルを見つけて削除しますか?

  2. プログラムの出力をリダイレクトし、それでもStdoutに送信する方法はありますか?

  3. お待ちくださいと書かれたPDFフォームファイルを開く方法…?

  1. 男と.8ファイルを開く方法は?

  2. 削除されたファイルを回復しますか?

  3. ファイル名に次より大きい番号が含まれるファイルを検索

  1. Linuxで削除されたファイルを回復する方法

  2. まだ書き込まれているファイルとの rsync の動作は?

  3. Linux で削除されたがまだ使用されているファイルのストレージを再利用する方法は?