具体来说,我rm -R /my/dir
在 ubuntu 10.04 机器上错误地运行了。
当我意识到恐怖时,几秒钟之内,我迅速用Ctrl+C命令将其杀死。现在看来我没有丢失任何数据。这可能吗?后台到底发生了什么?
答案1
Ctrl+向进程C发送信号。SIGINT
它的默认操作是“异常终止进程”,因此基本上按下Ctrl+C您正在中断正在运行的进程
如果您的速度足够快(在进程扫描目录结构之前)rm
就不应该删除任何内容(或者如果其中没有太多文件则可能不会删除)。
答案2
如果/my/dir
包含大量目录和文件,初始扫描可能需要一段时间,而且您很可能在命令仍在读取目录结构时就停止了命令。除此之外,Ctrl+C 不提供任何撤消功能。
答案3
Ctrl如果您按+ 的C速度足够快,没有丢失任何文件,那么您很幸运。您如何确定自己没有丢失任何文件?
按Ctrl+C将中断删除过程并终止它。因此,您需要仔细检查文件/文件夹并恢复所有已删除的文件。
答案4
您很幸运。该进程收到了SIGINT
,这(通常)会终止该进程。如果您没有丢失任何数据,那是因为该rm
命令仍在忙于遍历目录结构,因为它必须开始删除没有其他子目录的叶目录中的文件。