我没有执行“mv filename.sql newfolder”,而是执行了“mv filename.sql /newfolder”,结果却删除了一堆文件?

我没有执行“mv filename.sql newfolder”,而是执行了“mv filename.sql /newfolder”,结果却删除了一堆文件?

就像我说的,我移动了一堆 sql 文件,但我并没有将它们移动到目录中,而是重命名了它们,并将它们全部放在根目录中,作为一个名为“newfolder”的文件

我能撤消这个吗?或者我已经彻底把自己搞垮了?

答案1

如果你运行了mv file1 newfile然后mv file2 newfile,你将不可逆转地覆盖newfile。这意味着你的第一个文件已经消失了。

实际上,在这种情况下你能做的事情并不多。

最好的选择是从常规备份中恢复。您也可以提取新的 SQL 转储,或者立即停止使用系统并尝试文件恢复工具。有很多适用于 NTFS 和 FAT 的工具,但并不多适用于 ext 文件系统的工具。另请参阅:

此外,当以 身份工作时root,我建议在 shell 的配置文件中设置以下别名。这样,在覆盖现有文件或删除任何文件之前,系统会提示您。

[ $UID = 0 ] && \
  alias rm='rm -i' && \
  alias mv='mv -i' && \
  alias cp='cp -i'

如果您太习惯于设置基本命令的别名,那么在某些时候可能会给您带来麻烦,但如果您总是想在做可能有害的事情之前快速提醒一下,这是最简单的方法。

相关内容