保存在/ tmp中不是真的保存吗?


10

打开例如来自Firefox的邮件附件(之前未保存);这是一个Libre Office文档,您对其进行编辑,然后按保存(而不是另存为)并关闭文本编辑器和浏览器。然后,该文档消失了,因为它默认存储在中/tmp。至少我的Ubuntu 12.04就是这种情况。

您认为这是正确的行为吗?该程序是否至少应该提醒您您没有真正保存任何东西?还是有某种方法可以恢复文件(在注销和/或重新启动后)?

Answers:


10

为此,我发现当您选择在Firefox中使用外部程序打开文档时,会发生这样的情况,即Firefox将程序下载到该程序/tmp,然后以下载的文件作为参数运行所选程序(读为“使用所选程序”)。

如果您随后在程序中保存文件(不选择Save As或进行等效操作),它将在中使用该文件/tmp

Firefox关闭时将清除这些临时文件。因此,如果您关闭LibreOffice,但不能关闭Firefox,则可以恢复文件。但是,一旦关闭Firefox,该文件将被删除。

在大多数发行版中,/tmp重新启动后该文件夹也将被清空(其中的文件/var/tmp应保留更长时间)。

还请注意,此行为仅用于“打开”外部程序文件。如果文件是通过插件或其他方式在内部打开的,则/tmp该文件似乎未被使用(文件似乎与网页本身一起被缓存在其他位置)。

更新资料

作为参考(除非有必要,我不建议您这样做),您可以/tmp使用该browser.helperApps.deleteTempFileOnExit选项在firefox关闭时禁用对文件的删除。可以通过about:config页面进行设置(只需在地址栏中键入该内容,然后按Enter键即可)。如果存在并且是false,只需右键单击它并选择切换。否则,通过右键单击-> New-> Boolean来添加它,然后输入选项的名称并选择false。

/tmp在最近的基于Debian的系统上存储下次重启后的文件,请先查看/etc/default/tmpfs并确保no RAMTMP=yes行。如果将其注释掉(#在开始时),则很好(如果已设置,则/tmp它将tmpfs位于内存中的文件系统上,而不会存储在磁盘上)。接下来,在中添加或更改TMPTIME/etc/default/rcS。要/tmp无限期存储文件,您可以执行以下操作:

TMPTIME=infinite

或者,您可以使用正数而不是将infinite其保留该天数,一旦时间到了,它们将在下次重新启动时删除。显然,如果此行被注释掉,请取消注释。


请注意,/tmp重新启动时清除的事实是因为/tmp安装为tmpfs,将其文件存储在RAM(或swap)中,因此在卸载后会丢失其内容。
Darkhogg 2014年

1
@Darkhogg,不是这样。/tmp通常会明确清除文件。我已经更新了如何在基于Debian的系统上更改此设置。
Graeme 2014年

不知道!对该评论+1。
Darkhogg 2014年


1
当通过插件在Firefox中打开文件时,插件可以指定如何将文件传送到磁盘上或直接传送到内存中。大多数插件会选择内存。
2014年

3

Firefox具有用于“打开”文件的缓存。每次关闭Firefox都会清除此缓存。如果使用LO打开该文件,然后关闭Firefox,则会注意到该文件将消失。对于所有独立存储/tmp或不存储Firefox的情况都是如此。


2

您认为这是正确的行为吗?

我不得不说我认为不是。但是后来我有点偏颇,由于这个怪癖几乎失去了六个小时的工作。

我认为,无论用户背后的设计决策多么“逻辑”,任何允许用户在不警告用户的情况下做潜在灾难性事情的GUI都是有缺陷的。当用户可以在类似程序(例如Chrome)中执行完全相同的操作而没有不良影响时,尤其如此。

该程序是否至少应该提醒您您没有真正保存任何东西?

嗯...可能会弹出一个复选框,提示“不再显示此消息”。更为有用的是对LibreOffice和类似程序的一个小修复,警告用户所保存的文件是保存在/ tmp还是任何位置。我的意思是,如果您按“保存”,您希望文件保存在某个地方,对吗?

还是有某种方法可以恢复文件(在注销和/或重新启动后)?

是的,如果您很幸运。我从USB Linux安装启动计算机,并设法使用extundelete恢复文件。


2

让我解释。在对话框中选择“打开方式”而不是“下载至”时,仍会下载文件,这时Firefox将使用该应用程序打开下载的文件。但是,假设您不想保留该文件,因此在firefox退出时将删除此文件。如果您想保留它,则应在应用程序中选择“下载至”,或使用“另存为”,或将文件移出/ var / tmp(由filefox保留);删除仅适用于文件的原始位置。

请注意,即使其他应用程序保持打开状态,该文件也将被删除(从技术角度而言)。在类似Unix的系统上,这不是问题:当目录条目消失时,文件本身仍然保留,直到应用程序关闭它后才将其删除[此时的崩溃可能会使磁盘处于不一致状态;fsck将这种情况报告为“未链接的inode”]


-1

您认为这是正确的行为吗?

当然,这是正确的行为。仅当您不选择保存文件而是选择打开文件时,才会发生这种情况。我认为,通常最好保存所有内容而不是打开它们。

该程序是否至少应该提醒您您没有真正保存任何东西?

为什么?如果要保存,为什么不选择下载文件?

还是有某种方法可以恢复文件(在注销和/或重新启动后)?

不。当它仍在tmp中时,您将不得不复制它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.