当我使用 ctrl+c 终止命令时会发生什么?

当我使用 ctrl+c 终止命令时会发生什么?

具体来说,我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命令仍在忙于遍历目录结构,因为它必须开始删除没有其他子目录的叶目录中的文件。

相关内容