如果我们执行 rm -rf ../** 会发生什么?我们可以恢复数据吗?

xxz*_*xxz 3 command-line rm wildcards

我做了类似的事情:

$ cd /A/B/
$ rm -rf ./*
$ rm -rf ../**
Run Code Online (Sandbox Code Playgroud)

由于网络问题,我的系统与 Ubuntu 断开了连接。当我回来时,文件夹中没有文件或文件夹/A

Nma*_*ath 22

rm 删除文件。它不会将它们放入垃圾箱,因此无法通过正常方法恢复。

-rf标签还有两件事:

-r标签代表recursive这意味着它将删除您指定的路径或文件及其下面的所有其他内容。

-f标签代表force,这意味着操作将完成而无需任何进一步提示。

要回答有关语法的问题,请记住这./是当前目录的路径,../也是“父”目录的路径(当前目录上方的路径)。

因此,如果您rm -rf ../*在 under 下运行/A/B/,那么您将删除 下的所有内容/A/

如果您要使用rm -rf,请注意这是一个非常强大的命令,它将不加区别地永久删除您指定路径中的所有内容。

从此操作中恢复文件的唯一选择是高级数据恢复工具,例如 photorec/testdisk。这些应用程序并不总是能成功恢复数据,并且进一步使用您的设备会降低它们恢复任何内容的可能性。

最好的方法是从备份中恢复。

  • 我曾经想输入“rm var -rf”,但不小心输入了“rm /var -rf”,所以我删除了一个大系统目录,而不是网站的子目录。这个命令稍有错误就会造成很大的破坏。另外,如果我不是 root,命令就会失败,所以还有另一个教训。幸运的是,这只是一个虚拟机。 (3认同)

Art*_*ild 10

当您rm -rf ../**在目录中运行时/A/B,它会返回目录/A并删除其中的所有内容,因为..它是父目录。

如果您希望能够“恢复”数据,您应该考虑运行启用了活动快照的文件系统。

ZFSBTRFS实现了快照,并且可以配置自动快照。

例如,如果您配置了过去 24 小时的每小时快照和过去 14 天的每日快照,则可以随时回滚到给定文件系统的任何快照。

自动快照的确切配置将根据所选文件系统的不同而有所不同。

这种“正常工作”的原因是两个文件系统都实现了“写入时复制”,其中对文件系统的每次更改都会写入新位置 - 因此在快照和指向旧数据的指针过期之前不会删除任何数据。