工作目录自动删除

工作目录自动删除

在 上Ubuntu 20.04.3 LTS,我在 bash 中的 nvim 中工作。我打开了多个终端选项卡。工作目录中有一个.git目录。在某个时候,关闭一个终端选项卡后,我注意到我正在工作的目录不再存在。

sudo find / -name "some-file.txt"我通过从主目录运行来检查我是否意外移动了目录 ,其中some-file.txt有一个文件名,我确信它位于丢失的目录中。

我仔细检查了 bash 历史记录,在执行完最后一个git commit和最后一个命令后git rebase -i HEAD --root,只有指示我搜索丢失目录的命令。我记得在交互式变基中我重命名了初始提交。如果我在那里做错了什么(例如:drop所有提交),这仍然不能解释整个目录被删除的原因。

我知道,这是一个非常普遍的问题。但由于问题的性质,我无法提供更多详细信息或重现该错误。

这可能是什么原因呢?(每当我尝试访问rm -r包含提交的存储库的目录时.git,系统都会要求我确认删除提交rm: remove write-protected regular file ...。当我以身份运行此命令时不会发生这种情况sudo,但我很确定我没有输入密码。在 bash 历史记录之上,这让我认为我没有意外删除所有目录。)

我该怎么做才能恢复我的数据?我没有推动,我已经设法将文件存储在打开的 vim 缓冲区中,以便自己回答最明显的部分。

答案1

找到原因:

nvim还附带了几个可以执行此操作的命令(和预安装的扩展)。如果您正在尝试找出删除的原因,请nvim同时检查您的日志。

数据恢复:

您提到了一个.git目录。您的目录有 git 远程吗?如果有,只需将其克隆到本地即可解决问题。

如果没有,请检查名为的目录,看看".trash-{$USER_ID}"原始文件是否位于已安装的外部驱动器上,否则.local/share/Trash。它可能在那里(除非rm用于删除。在这种情况下,除非您正在备份文件系统,否则它可能已经消失了。)

保护您的系统免受此问题的影响:

这就是为什么您经常会看到这里的用户推荐频繁的计划备份。我个人使用Timeshift和的组合rsync

Timeshift可以通过 apt 下载。它主要用于备份您的系统文件和配置,并允许您设置定期备份计划。如果您即将执行一些有风险的操作,您还可以运行手动备份。

rsyncUbuntu 附带。它只是一个基本的命令行工具,用于通过网络复制文件和目录(尽管它也可以在本地执行此操作)。

Rsync它主要不是作为独立的备份程序,至少不是以现在TimeshiftWeresync现在的方式。但是,它在备份方面非常简单和有效,许多更全面的解决方案都在内部使用它来实现此目的。

的缺点rsync是没有“设置完毕,忘掉它”方法内置。但是,Ubuntu 包管理器提供了更多的备份选项,每个选项都有自己的特点。

此时推荐积极的备份策略可能有些陈词滥调,但正如您所见,它是陈词滥调是有充分理由的。

相关内容