撤销 "rm -rf ~"命令?
我有一个我不想命名为’~‘的文件夹,所以在命令行输入了
rm -rf ~
,不小心删除了我的home文件夹(因为~解析为/home/username)。有什么办法可以回来,还是说我基本上需要从头开始重新创建账户?
我有一个我不想命名为’~‘的文件夹,所以在命令行输入了
rm -rf ~
,不小心删除了我的home文件夹(因为~解析为/home/username)。有什么办法可以回来,还是说我基本上需要从头开始重新创建账户?
一般来说,没有简单的方法可以恢复。
你可以从日常备份中恢复。
其他人(如@RiMMER, @Adam, 和@James T)已经提到,对于大多数文件系统,可以恢复大部分或全部数据(也许没有文件名),因为数据实际上并没有被清零,只是从文件表中删除。这不仅在Linux中是如此,在Windows和Mac中也是如此。
然而,没有人提到最重要的事情–关掉你的电脑。现在关上你的电脑。
许多程序–包括你现在正在使用的互联网浏览器–会将数据缓存到硬盘上,而且你所做的几乎所有事情都会导致你的电脑调整大小/写入交换文件。这两件事都会写入硬盘上的空闲扇区,有可能覆盖你的珍贵数据。
因此,关闭电脑,取出硬盘,并将其放入另一台电脑。将硬盘驱动器挂载为只读,并恢复文件到一个单独的硬盘驱动器。当你恢复了所有你能感兴趣的东西–也只有这样–把文件写回原来的硬盘。
相信每一个linux用户在某一个时间点上都必须亲身经历这个惨痛的教训,才能真正了解备份的重要性,以及注意细节,小心谨慎。
例如,如果你要删除看起来很诡异的文件,你可以先在这个诡异的文件上运行一些没有副作用的命令,而且不会对你的数据进行修改。例如,如果你在尝试删除文件夹之前运行
cd ~
,你会看到它反而会将目录改为你的home文件夹,而不是~
文件夹。一旦你通过足够的故障排除步骤了解到真正的命令,你将需要正确地将cd
放入~
文件夹,然后你可以按上箭头键从历史中提取最后一个命令,然后将cd
改为rm
,然后,只有这样尝试删除文件夹。
我建议在执行任何永久的行动之前,采取这样的步骤。这不是永久性的,也不是万无一失的,但如果你在执行有副作用的操作时采取这种程度的谨慎,你就有更大的机会防止那些糟糕的时刻。
通过检查未被回收的inode来恢复文件是有技巧的。删除后写入文件系统的数据越多,恢复数据的可能性越小。数据意外删除后恢复的最佳策略是从备份中恢复。
对于你的数据问题,我很抱歉。每个人都已经在如何处理你的数据问题上进行了交流,但这里有一些信息,你可以在下一次看到一个被称为~
的文件夹时进行处理。
1.找到创建它的人,并确保他们不再这样做。
2. 不要使用 -rf
或任何强大的参数来 rm 进行删除。相反,要慢慢来,确保你能看到发生了什么。通过在shell中转义,可以在不扩大到主目录的情况下输入tilde。理论上,你可以_rm -rI \~
,然而你可以更进一步。
1.首先,cd \~
进入那个文件夹,也许甚至用pwd
来检查你是否到了那里。十在你进去的时候删除它的内容。同样要小心,但要用rf -rI *
清理出文件夹,如果你需要也要用.*
。
2. 现在用cd ..
往回移动,并删除带有rmdir \~
的目录。
alias rm="rm -i"
假设你使用的是Bash shell (把它放在你的.bashrc文件中,这样它就会在你打开的新shell中持续存在)。
这应该会导致rm要求你确认你要删除的文件,这很好,特别是当你使用-rf时,但它也会在提示中把’~‘扩展为你的主目录的完整路径,这应该会给你一个提示,你不是在删除一个文件’~‘,而是你的homedir。
$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n
从技术上讲,这不是你问题的答案,但可能会帮助你避免将来出现这样的问题。
EDIT: 有些人可能不鼓励你使用这种技术,因为它让你对 “rm "命令不那么小心。根据我的经验,事实远非如此。实际上,别名的作用是阻止你使用 "rm -rf”–因为你知道它会导致许多你不想回答的提示–为了得到一个无提示的 “rm -rf",你需要刻意地将rm命令称为/bin/rm(或其他什么)。这导致了更多的有意识和刻意的使用 "rm "命令–因为你总是需要在使用rm之前在头脑中选择 "rm或/bin/rm”–无论是在你的服务器上还是在你碰巧登录的其他服务器上。如果每个人在使用 rm 之前都要先想一想,那么这个世界就会变得更加安全。
Recovery Tools - Command Line :
*Recovery Tools - Gui .NET Framework 2.0版本。 *
*信息 。 *
根据我的个人经验,我使用 “UFS Explorer "和photorec来恢复我的数据
(1) = 不开源,不免费
(2) = 不开源,免费
(3) = 开源和免费
(4) = 支持 ntfs
(5) = 有目录结构功能。