сохранение в /tmp на самом деле не сохранение?

сохранение в /tmp на самом деле не сохранение?

Откройте, например, вложение в почту из Firefox (предварительно не сохраняя его); это документ Libre Office, вы его редактируете, а затем нажимаете сохранить (не сохранить как) и закрываете и текстовый редактор, и браузер. Затем документ исчезает, так как он был сохранен по умолчанию в /tmp. По крайней мере, так происходит в моем Ubuntu 12.04.

Как вы думаете, это правильное поведение? Разве программа не должна хотя бы напомнить вам, что вы на самом деле ничего не сохраняете? Или есть какой-то способ восстановить файл (также после выхода из системы и/или перезагрузки)?

решение1

Экспериментируя с этим, я обнаружил, что когда вы выбираете открытие документа с помощью внешней программы в Firefox, Firefox загружает программу, /tmpа затем запускает выбранную программу с загруженным файлом в качестве аргумента (читай «открывает файл с помощью выбранной программы»).

Если затем сохранить файл (без выбора Save Asили эквивалента) из программы, она будет использовать этот файл в формате /tmp.

Firefox очистит эти временные файлы при закрытии. Таким образом, вы сможете восстановить файл, если закроете LibreOffice, но не Firefox. Однако как только Firefox будет закрыт, файл будет удален.

В большинстве (во всех?) дистрибутивах /tmpпапка также очищается при перезагрузке (файлы в ней /var/tmpдолжны сохраняться дольше).

Обратите внимание, что это поведение относится только к «открытию» файла внешней программой. Если файл открывается внутренне через плагин или иным образом, то он, по-видимому, /tmpне используется (файл, по-видимому, кэшируется в другом месте вместе с самими веб-страницами).

Обновлять

Для справки (я не рекомендую делать это без необходимости), вы можете отключить удаление /tmpфайлов при закрытии Firefox с помощью 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, вы заметите, что файл исчезнет. Это справедливо для всех Firefox, независимо от того, хранятся они в них /tmpили нет.

решение3

Как вы думаете, это правильное поведение?

Должен сказать, что я так не думаю. Но я немного предвзят, поскольку из-за этой странности чуть не потерял шесть часов работы.

Я думаю, что любой GUI, который позволяет пользователю делать что-то потенциально катастрофическое без предупреждения, является дефектным, независимо от того, насколько «логичным» может быть решение по дизайну, стоящее за этим. Это особенно верно, когда пользователи могут делать то же самое в похожих программах (например, Chrome) без каких-либо негативных последствий.

Разве программа не должна хотя бы напомнить вам, что на самом деле вы ничего не сохраняете?

Хм... может быть, всплывающее окно с флажком "Больше не показывать это сообщение" было бы полезным. Еще более полезным было бы небольшое исправление для LibreOffice и подобных программ, предупреждающее пользователя, если сохраняемый файл сохраняется в /tmp или где-то еще. Я имею в виду, если вы нажимаете "сохранить", вы ожидаете, что файл будет где-то сохранен, верно?

или есть ли способ восстановить файл (даже после выхода из системы и/или перезагрузки)?

Да, если повезет. Я загрузил свой компьютер с установленного на USB-накопителе Linux и мне удалось восстановить файл с помощью extundelete.

решение4

Как вы думаете, это правильное поведение?

Конечно, это правильное поведение. Это происходит только тогда, когда вы не выбиралисохранятьфайл, но вместо этого решилоткрытьэто. По-моему, обычно лучше все сохранить, чем открывать.

Разве программа не должна хотя бы напомнить вам, что на самом деле вы ничего не сохраняете?

Почему? Если вы хотели сохранить, почему вы не выбрали загрузку файла?

или есть ли способ восстановить файл (даже после выхода из системы и/или перезагрузки)?

Нет. Вам придется скопировать его, пока он еще находится в tmp.

Связанный контент