/tmp に保存するのは本当に保存ではないのですか?

/tmp に保存するのは本当に保存ではないのですか?

たとえば、Firefox からメールの添付ファイルを開きます (事前に保存していない場合)。これは Libre Office ドキュメントなので、編集してから [保存] ([名前を付けて保存] ではなく) を押して、テキスト エディターとブラウザーの両方を閉じます。すると、ドキュメントはデフォルトで に保存されているため、消えます/tmp。少なくとも、私の Ubuntu 12.04 ではそうです。

これは正しい動作だと思いますか? プログラムは少なくとも、実際には何も保存していないことを通知するべきではないでしょうか? または、ファイルを回復する方法はありますか (ログアウト後や再起動後でも)?

答え1

これをいろいろ試してみたところ、Firefox で外部プログラムを使用してドキュメントを開くことを選択すると、Firefox がプログラムをダウンロードし/tmp、ダウンロードしたファイルを引数として選択したプログラムを実行する (「選択したプログラムでファイルを開く」と読みます) ことがわかりました。

Save Asその後、プログラム内から( または同等のものを選択せず​​に) ファイルを保存すると、このファイルは で使用されます/tmp

Firefox は終了時にこれらの一時ファイルをクリーンアップします。そのため、LibreOffice を閉じても Firefox を閉じてもファイルを回復できます。ただし、Firefox を閉じるとすぐにファイルは削除されます。

ほとんど (すべて?) のディストリビューションでは、/tmp再起動時にフォルダーも空になります (フォルダー内のファイルは/var/tmpより長く保持されるはずです)。

また、この動作は、外部プログラムでファイルを「開く」場合にのみ適用されることに注意してください。ファイルがプラグインなどを介して内部的に開かれる場合、ファイルは/tmp使用されないようです (ファイルは Web ページ自体とともに他の場所にキャッシュされているようです)。

アップデート

参考までに(必要な場合を除いてこれを行うことはお勧めしません)、/tmpFirefox の終了時にファイルの削除を無効にするにはbrowser.helperApps.deleteTempFileOnExit、オプションを使用します。これは、ページから設定できますabout:config(アドレスバーにこれを入力して Enter キーを押すだけです)。オプションが存在し、 になっている場合はfalse、右クリックして切り替えを選択します。それ以外の場合は、次のように追加します。右クリック->新規->ブール、オプションの名前を入力して false を選択します。

/tmp最近の Debian ベースのシステムで、次回の再起動後もファイルを保存するには、まず を見て/etc/default/tmpfs、 の行がないことを確認しますRAMTMP=yes。 がコメント アウトされている場合 (#の先頭で )、これは問題ありません ( が設定されている場合は、メモリ内のファイル システム/tmp上にありtmpfs、ディスクには保存されません)。 次に、TMPTIMEの の行を追加または変更します。ファイルを無期限に/etc/default/rcS保存するには、次のようにします。/tmp

TMPTIME=infinite

または、 の代わりに正の数を使用しinfiniteて、その日数だけファイルを保持することもできます。保持期間が過ぎると、次回の再起動時に削除されます。当然、この行がコメント アウトされている場合は、コメントを解除してください。

答え2

Firefox には、ファイルを「開く」ためのキャッシュがあります。このキャッシュは、Firefox を閉じるたびにクリアされます。LO でそのファイルを開いて Firefox を閉じると、ファイルが消えていることに気付くでしょう。これは、ファイルが保存されている/tmpかどうかに関係なく、すべての Firefox に当てはまります。

答え3

これは正しい行動だと思いますか?

そうではないと思います。しかし、この癖のせいで 6 時間近く仕事が無駄になったことがあるので、少し偏見があるかもしれません。

たとえその背後にある設計上の決定がいかに「論理的」であったとしても、ユーザーに警告せずに潜在的に破滅的なことを実行させてしまう GUI は欠陥があると思います。特に、ユーザーが同様のプログラム (Chrome など) でまったく同じことを実行でき、悪影響がない場合は、その通りです。

プログラムは少なくとも、実際には何も保存していないことをユーザーに通知するべきではないでしょうか?

うーん... 「このメッセージを今後表示しない」というチェックボックス付きのポップアップがあると便利かもしれません。LibreOffice や類似のプログラムに小さな修正を加えると、保存しようとしているファイルが /tmp などに保存されている場合にユーザーに警告が表示されるので、さらに便利です。つまり、「保存」を押したら、ファイルがどこかに保存されることを期待するでしょう?

または、ファイルを回復する方法はありますか (ログアウト後や再起動後でも)?

はい、運が良ければ可能です。USB Linux インストールからコンピューターを起動し、extundelete を使用してファイルを回復することができました。

答え4

これは正しい行動だと思いますか?

もちろんそれは正しい行動です。それはあなたが望まなかったときにのみ起こります保存ファイルではなく、開ける私の意見では、通常は開くのではなくすべて保存する方が良いと思います。

プログラムは少なくとも、実際には何も保存していないことをユーザーに通知するべきではないでしょうか?

なぜですか? 保存したいのであれば、なぜファイルのダウンロードを選択しなかったのですか?

または、ファイルを回復する方法はありますか (ログアウト後や再起動後でも)?

いいえ。まだ tmp にあるときにコピーする必要があります。

関連情報