економія в / tmp насправді не економія?


10

Відкрийте, наприклад, вкладення пошти від Firefox (без попереднього збереження); це документ Office Office Libre, ви редагуєте його, а потім натисніть кнопку збереження (не зберегти як) і закрийте текстовий редактор і браузер. Потім документ зникає, оскільки він був за замовчуванням збережений у /tmp. Принаймні, це стосується мого Ubuntu 12.04.

Як ви вважаєте, це правильна поведінка? Чи не повинна програма хоча б нагадувати вам, що ви насправді нічого не економите? чи є якийсь спосіб відновити файл (також після виходу з системи та / або перезавантаження)?

Відповіді:


10

Займаючись цим, я виявляю, що коли ви вирішили відкрити документ із зовнішньою програмою у 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щоб зберегти їх протягом такої кількості днів, як тільки їх час закінчиться, вони будуть видалені при наступному перезавантаженні. Очевидно, якщо цей рядок коментується, коментуйте його.


Зауважте, що той факт, який /tmpочищається при перезавантаженні, полягає в тому, що /tmpвін встановлений як a tmpfs, який зберігає свої файли в оперативній пам’яті (або swap), тим самим втрачаючи свій вміст після його відключення.
Darkhogg

1
@Darkhogg, не так. /tmpфайли, як правило, спеціально очищаються. Я оновив те, як налаштування цього можна змінити в системах на базі Debian.
Graeme

Не знав про це! +1 до цього коментаря.
Darkhogg


1
Коли файл відкривається в Firefox через плагін, він може вказати, як він хоче доставити файл: на диску або безпосередньо в пам'ять. Більшість плагінів вибирають пам'ять.
Познач

3

Firefox має кеш-пам'ять для "відкриття" файлів. Цей кеш очищається кожного разу, коли ви закриваєте Firefox. Якщо ви відкриєте цей файл за допомогою LO та закриєте Firefox, ви помітите, що файл зникне. Це справедливо для всіх Firefox незалежно, вони зберігаються /tmpчи ні.


2

Як ви вважаєте, це правильна поведінка?

Я мушу сказати, що я не думаю, що це так. Але тоді я трохи упереджений, майже втративши шість годин роботи через цю вигадку.

Я думаю, що будь-який графічний інтерфейс, що дозволяє користувачеві зробити щось потенційно згубне, не попереджаючи їх, є недоліком, незалежно від того, наскільки "логічним" дизайнерським рішенням воно може бути. Це особливо так, коли користувачі можуть робити те саме, що в подібних програмах (наприклад, Chrome) без негативних наслідків.

Чи не повинна програма хоча б нагадувати вам, що ви насправді нічого не економите?

Гммм ... можливо, корисне спливаюче вікно із позначкою "Не показувати це повідомлення знову". Ще кориснішим буде невелике виправлення LibreOffice та подібних програм, що попереджають користувача, якщо файл, який вони зберігають, зберігається в / tmp чи де завгодно. Я маю на увазі, якщо ви натиснете "зберегти", ви очікуєте, що файл буде десь збережений, правда?

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

Так, якщо пощастить. Я завантажив свій комп'ютер зі встановлення usb linux та зумів відновити файл за допомогою extundelete.


2

Дозволь пояснити. Якщо у діалоговому вікні ви виберете "Відкрити", на відміну від "Завантажити", файл все одно завантажується, після чого Firefox відкриває завантажений файл із програмою. Однак припущення полягає в тому, що ви не хотіли зберігати файл, тому він цей файл видаляється, коли Firefox виходить. Якщо ви хотіли зберегти його, вам слід вибрати "Завантажити в", або використати "Зберегти як" у вашій програмі, або просто перемістити файл з / var / tmp (де filefox зберігає його); видалення стосується лише файлу у вихідному місці.

Зауважте, що файл видаляється, навіть якщо інша програма зберігає його відкритим (у технічному розумінні). У системах, схожих на Unix, це не проблема: поки запис каталогу не відбувається, сам файл залишається і не буде видалений, поки програма не закриє його [аварія в цей момент може залишити диск у непослідовному стані; fsck повідомляє про цю ситуацію як про "відключений взаємодію"]


-1

Як ви вважаєте, це правильна поведінка?

Звичайно, це правильна поведінка. Це трапляється лише тоді, коли ви не вирішили зберегти файл, а натомість вирішили його відкрити . На мою думку, зазвичай краще все зберегти, а не відкривати.

Чи не повинна програма хоча б нагадувати вам, що ви насправді нічого не економите?

Чому? Якщо ви хотіли зберегти, чому ви не вирішили завантажити файл?

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

Ні. Вам доведеться скопіювати його, коли він ще знаходиться в tmp.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.