開く例: Firefoxからのメールの添付ファイル(事前に保存せずに)。これはLibreOfficeドキュメントです。編集してから、[保存]を押して(名前を付けて保存しないで)、テキストエディターとブラウザーの両方を閉じます。その後、ドキュメントはデフォルトで/tmp
に保存されていたため、表示されなくなります。少なくともこれは私のUbuntu12.04の場合です。
これは正しい動作だと思いますか?プログラムは、少なくとも本当に何も保存していないことを思い出させてはいけませんか?または、ファイルを回復する方法はありますか(ログアウトおよび/または再起動後も)?
これをいじってみると、Firefoxで外部プログラムを使用してドキュメントを開くと、Firefoxはプログラムを/tmp
にダウンロードし、ダウンロードしたファイルを引数として選択したプログラムを実行します(読み取り'選択したプログラムでファイルを開きます')。
その後、プログラム内から(Save As
または同等のものを選択せずに)ファイルを保存すると、/tmp
でこのファイルが使用されます。
Firefoxは、閉じるときにこれらの一時ファイルをクリーンアップします。したがって、FirefoxではなくLibreOfficeを閉じれば、ファイルを回復できます。ただし、Firefoxを閉じるとすぐに、ファイルは削除されます。
ほとんど(すべて?)のディストリビューションでは、再起動時に/tmp
フォルダーも空になります(/var/tmp
内のファイルはより長く存続する必要があります)。
この動作は、外部プログラムでファイルを「開く」ためだけのものであることに注意してください。ファイルがプラグインなどを介して内部的に開かれている場合、/tmp
は使用されていないように見えます(ファイルはWebページ自体とともに他の場所にキャッシュされているように見えます)。
参考までに(必要がない限り、これを行うことはお勧めしません)、Firefoxが/tmp
オプションを使用して終了するときに、ファイルのbrowser.helperApps.deleteTempFileOnExit
の削除を無効にできます。これは、about:config
ページから設定できます(アドレスバーにこれを入力してEnterキーを押すだけです)。存在し、false
の場合は、右クリックしてトグルを選択します。それ以外の場合は、右クリック->新規->ブール値を実行して追加し、オプションの名前を入力してfalseを選択します。
最近のDebianベースのシステムでの次の再起動後の/tmp
ファイルを保存するには、最初に/etc/default/tmpfs
を調べ、RAMTMP=yes
行がないことを確認します。コメントアウトされている場合(最初は#
)、これで問題ありません(設定されている場合、/tmp
はメモリ内のtmpfs
ファイルシステムにあり、ディスクには保存されません) )。次に、/etc/default/rcS
のTMPTIME
行を追加または変更します。 /tmp
ファイルを無期限に保存するには、次のようにします。
TMPTIME=infinite
または、infinite
の代わりに正の数を使用して、その日数の間それらを保持することができます。時間が経過すると、それらは次の再起動時に削除されます。この行がコメント化されている場合は、コメントを外してください。
Firefoxには、「ファイルを開く」ためのキャッシュがあります。このキャッシュは、Firefoxを閉じるたびにクリアされます。そのファイルをLOで開いてFirefoxを閉じると、ファイルが消えることに気づくでしょう。これは、すべてのFirefoxに個別に当てはまり、/tmp
に格納されているかどうかは関係ありません。
説明させてください。ダイアログで[ダウンロード先]ではなく[アプリケーションから開く]を選択すると、ファイルは引き続きダウンロードされます。この時点で、Firefoxはダウンロードしたファイルをアプリケーションで開きます。ただし、ファイルを保持したくないと想定しているため、Firefoxが終了するとこのファイルは削除されます。それを保持したい場合は、「ダウンロード先」を選択するか、アプリケーションで「名前を付けて保存」を使用するか、ファイルを/ var/tmp(filefoxが保持する場所)から移動する必要があります。削除は、元の場所にあるファイルにのみ適用されます。
他のアプリケーションが(技術的な意味で)開いたままにしている場合でも、ファイルは削除されることに注意してください。 Unixライクなシステムでは、これは問題ではありません。ディレクトリエントリが消えても、ファイル自体は残り、アプリケーションがファイルを閉じるまで削除されません[この時点でのクラッシュにより、ディスクが不整合な状態になる場合があります。 fsckは、この状況を「リンクされていないiノード」として報告します]
これは正しい動作だと思いますか?
私はそうは思わないと言わざるを得ません。しかし、私は少し偏見があり、この癖のために6時間近くの仕事を失いました。
ユーザーが警告なしに壊滅的な可能性のあることを実行できるGUIは、その背後にある設計上の決定がどれほど「論理的」であっても、欠陥があると思います。これは特に、ユーザーが同様のプログラム(Chromeなど)でまったく同じことを悪影響なしに実行できる場合に当てはまります。
プログラムは少なくともあなたが本当に何も節約していないことをあなたに思い出させるべきではありませんか?
うーん...「このメッセージを今後表示しない」というチェックボックスが付いたポップアップが役に立つかもしれません。さらに便利なのは、LibreOfficeや同様のプログラムを少し修正して、保存しているファイルが/ tmpなどに保存されているかどうかをユーザーに警告することです。つまり、「保存」を押すと、ファイルがどこかに保存されると思いますよね?
またはファイルを回復する方法はありますか(ログアウトや再起動後も)?
はい、運がよければ。 USB linuxインストールからコンピューターを起動し、extundeleteを使用してファイルを回復することができました。