/ tmpへの保存は実際には保存されませんか?


10

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

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

回答:


10

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

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

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

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

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

更新

参考までに(必要でない限り、これを行うことはお勧めしません)、/tmpFirefoxが閉じるときにon 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その日数の間それらを保持することができます。時間が経過すると、それらは次の再起動時に削除されます。この行がコメント化されている場合は、コメントを外してください。


事実ことを注意/tmpするので、再起動時にクリアされている/tmpISのように取り付けられたtmpfsので、それをアンマウントした後、その内容を失う、RAM(またはスワップ)でそのファイルを格納しています、。
Darkhogg 2014年

1
@Darkhogg、そうではありません。/tmp通常、ファイルは明確に消去されます。この設定をDebianベースのシステムでどのように変更できるかを更新しました。
Graeme

それについて知りませんでした!そのコメントに+1します。
Darkhogg 2014年


1
プラグインを介してFirefoxでファイルを開くと、プラグインはファイルをディスクに配信するか、メモリに直接配信するかを指定できます。ほとんどのプラグインはメモリを選択します。
マーク

3

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


2

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

私はそうではないと思います。しかし、私は少し偏っていて、この癖のために6時間近く仕事を失いました。

ユーザーに警告せずに悲惨な可能性のある何かを実行させるGUIは、その背後にある設計上の決定がいかに「論理的」であっても、欠陥があると思います。これは特に、ユーザーが同様のプログラム(Chromeなど)でまったく同じことをして、悪影響を及ぼさない場合に当てはまります。

プログラムは、少なくとも実際には何も保存していないことを思い出させてはいけませんか?

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

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

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


2

説明させてください。ダイアログで[ダウンロード先]ではなく[アプリケーションから開く]を選択すると、ファイルは引き続きダウンロードされます。この時点で、Firefoxはダウンロードしたファイルをアプリケーションで開きます。ただし、ファイルを保持したくないと想定しているため、Firefoxの終了時にこのファイルは削除されます。保持したい場合は、「ダウンロード先」を選択するか、アプリケーションで「名前を付けて保存」を使用するか、ファイルを/ var / tmp(filefoxが保持する場所)から移動するだけです。削除は元の場所にあるファイルにのみ適用されます。

他のアプリケーションが(技術的な意味で)開いたままにしても、ファイルは削除されることに注意してください。Unixライクなシステムでは、これは問題ではありません。ディレクトリエントリが消えても、ファイル自体は残り、アプリケーションが閉じるまで削除されません[この時点でのクラッシュにより、ディスクが不整合な状態になる場合があります。fsckはこの状況を「リンクされていないiノード」として報告します]


-1

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

もちろんそれは正しい振る舞いです。これは、ファイルを保存することを選択せず、ファイルを開くことを選択した場合にのみ発生します。私の意見では、通常は開くのではなく、すべてを保存する方が良いです。

プログラムは、少なくとも実際には何も保存していないことを思い出させてはいけませんか?

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

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

いいえ。それがまだtmpにある場合は、コピーする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.