我在我的 Linux 工作站上运行了一个冗长的科学模拟(运行了近一周),命令如下:
time ./simulation
因此,除了从模拟中获取输出文件之外,我的目标还在于获取运行该模拟所需的准确时间。但是,不幸的是,我在复制时间输出之前运行了该命令ls -la
,但我的终端窗口仅显示有限的行数。所以我现在已经在终端设置中将行数更改为无限制,但我仍然无法向上滚动查看时间信息。有没有办法无需重新运行模拟即可查看该信息?
答案1
您无法再访问 mate-terminal 中的这些线路。
增加回滚行数也无济于事:终端不会记住所有行,仅显示配置的行数;它只记住配置的金额。
话虽如此,如果给定的终端选项卡仍然打开,数据仍有可能未被覆盖,可以通过深入调查恢复;类似于如果已删除文件未被覆盖,仍然可以从磁盘恢复。每滚动一行,成功的机会就会减少,即如果数据滚动了 5 行,则最有可能恢复,如果滚动了数百万行,则最有可能被覆盖。
(如果您关闭了给定的终端选项卡,则无法恢复数据:它以加密文件的形式存储在磁盘上,并且当终端关闭时,加密密钥在内存中被清零。)
这样的调查需要了解VTE的回滚处理,深入挖掘终端进程的内存和打开文件,并仔细检查这些数据。这可能需要几天的繁重工作,而且没有任何保证。访问整个原始驱动器会稍微进一步增加机会,尽管会显着增加所需的时间,并且使远程操作变得有问题。
如果涉及到一些高度关键的数据(例如包含您毕生积蓄的比特币钱包的密码),您可以开始研究 VTE 的内部结构并进行这项调查,或者雇用某人(例如我)来为您做这件事。考虑到运行某件事“只是”一周,这对你来说不太可能值得,重新运行该事物更便宜。
(注:我编写了处理 VTE(即伴侣终端)回滚缓冲区的大部分代码。)