如何按 Tab 來停止嘗試列出目錄?

如何按 Tab 來停止嘗試列出目錄?

有時我會意外地/本能地tab在一個我可能不應該有的目錄中加倍。在目前的情況下,我寫這篇文章的原因是它位於一個舊的、非常滿的 cifs 驅動器上。

當然,這會導致控制終端掛起等待目錄列表,Ctrl+C不執行任何操作,因為它會向錯誤的進程發送中斷(我認為列表是在子 shell 中產生的)。

有什麼辦法可以取消這個清單嗎?它是在進程列表中可見的東西還是我只需要等待列表完成(似乎沒有超時)。

這是 Ubuntu 16.04 上的 Bash。

不是“如何禁用”的重複。我不想禁用該功能,我想知道當它在需要很長時間的目錄列表上意外運行時如何停止它。

答案1

Ctrl+C不執行任何操作,因為它會向錯誤的進程發送中斷(我認為該清單是在子 shell 中產生的)。

它正在向正確的進程發送中斷,但該進程處於不間斷的睡眠

不間斷睡眠狀態是指不會立即處理訊號的睡眠狀態。只有當等待的資源變得可用或等待期間發生逾時(如果在進入睡眠狀態時指定)時,它才會被喚醒。它主要由等待磁碟或網路 IO(輸入/輸出)的裝置驅動程式使用。當進程不間斷地睡眠時,當進程從系統呼叫或陷阱返回時,將注意到睡眠期間累積的訊號。

在類 Unix 系統中,此指令ps -l使用D進程的不間斷睡眠狀態碼。即使使用這些進程也無法殺死它們SIGKILL,擺脫它們的唯一簡單方法是重新啟動系統。

所以

有什麼辦法可以取消這個清單嗎?

重啟。

它在進程列表中可見嗎?

是的。處於狀態的進程D

我只需要等待列表通過嗎?

是的。或重新啟動。

有關的:如果kill -9不起作用怎麼辦?

相關內容