Answers:
为此,我发现当您选择在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
通常会明确清除文件。我已经更新了如何在基于Debian的系统上更改此设置。
您认为这是正确的行为吗?
我不得不说我认为不是。但是后来我有点偏颇,由于这个怪癖几乎失去了六个小时的工作。
我认为,无论用户背后的设计决策多么“逻辑”,任何允许用户在不警告用户的情况下做潜在灾难性事情的GUI都是有缺陷的。当用户可以在类似程序(例如Chrome)中执行完全相同的操作而没有不良影响时,尤其如此。
该程序是否至少应该提醒您您没有真正保存任何东西?
嗯...可能会弹出一个复选框,提示“不再显示此消息”。更为有用的是对LibreOffice和类似程序的一个小修复,警告用户所保存的文件是保存在/ tmp还是任何位置。我的意思是,如果您按“保存”,您希望文件保存在某个地方,对吗?
还是有某种方法可以恢复文件(在注销和/或重新启动后)?
是的,如果您很幸运。我从USB Linux安装启动计算机,并设法使用extundelete恢复文件。
让我解释。在对话框中选择“打开方式”而不是“下载至”时,仍会下载文件,这时Firefox将使用该应用程序打开下载的文件。但是,假设您不想保留该文件,因此在firefox退出时将删除此文件。如果您想保留它,则应在应用程序中选择“下载至”,或使用“另存为”,或将文件移出/ var / tmp(由filefox保留);删除仅适用于文件的原始位置。
请注意,即使其他应用程序保持打开状态,该文件也将被删除(从技术角度而言)。在类似Unix的系统上,这不是问题:当目录条目消失时,文件本身仍然保留,直到应用程序关闭它后才将其删除[此时的崩溃可能会使磁盘处于不一致状态;fsck将这种情况报告为“未链接的inode”]
您认为这是正确的行为吗?
当然,这是正确的行为。仅当您不选择保存文件而是选择打开文件时,才会发生这种情况。我认为,通常最好保存所有内容而不是打开它们。
该程序是否至少应该提醒您您没有真正保存任何东西?
为什么?如果要保存,为什么不选择下载文件?
还是有某种方法可以恢复文件(在注销和/或重新启动后)?
不。当它仍在tmp中时,您将不得不复制它。
/tmp
重新启动时清除的事实是因为/tmp
安装为tmpfs
,将其文件存储在RAM(或swap)中,因此在卸载后会丢失其内容。