Osx

刪除無限嵌套的目錄

  • September 2, 2017

首先讓我說這是我正在使用的 Mac 終端。不是 Linux,但我認為我會在這裡得到最好的答案,因為它與 Unix 有關,而命令行與 Mac 本身無關。

無論如何,這是問題所在。為了變得非常懶惰,我嘗試在我的 ~/.bashrc 中編寫一個函式,讓我移動到“家庭作業”文件夾,創建一個包含今天日期的文件夾,移動到所述文件夾,並使用給定的打開 vim文件名…一口氣。它看起來像……

export DATE="$( date +%d-%b )"
function hw() {
 cd ~/Java/Programs/HW
 mkcd $DATE
 vim "$*"
}

mkcd 是一個創建文件夾並同時移動到其中的函式。這就是我的功能現在的樣子,它工作得很好。然而,在我多次嘗試完成這項工作時,我犯了一個非常愚蠢的錯誤,最終導致我的 mkcd 部分出現某種無限循環……仍然不確定我是如何管理這個的,我已經刪除了該程式碼。那麼當我這樣做時發生的事情很明顯……我現在有一個名為 27-Jan 的文件夾,其中包含無數個名為 27-Jan 的文件夾。(就像我說的很愚蠢)

好吧,為了讓它不再讓我越來越深,我點擊了 ^c 和 viola 我停止了……我改回我的 ~/ 文件夾并快速執行了 sudo rm 27-Jan/。令我驚訝(和擔心)那行不通。我嘗試了更多的東西來擺脫它,但什麼也沒做。所以像我一樣聰明……我把它移到 .Trash 並不再擔心它。從那以後,我清空了幾次垃圾,但從未真正注意到,但那個該死的文件夾不會消失!它在我的硬碟上佔用了零字節,但它仍然存在所有它的小子文件夾。

我試過的:

sudo rm 27-Jan/
sudo rm -r 27-Jan/ 

這個人說override rwxr-xr-x caldwell/staff for 27-Jan/(many times repeated)/27-Jan?我已經回答了yyes甚至si(如果它說西班牙語)……每次它說No such file or directory並重複上一個問題。

有沒有人見過這樣的事情?你知道我能做些什麼讓它消失嗎?

盡量rm -rf避免提示。

-f, --force           ignore non-existent files, never prompt

一種非常安全的方法是 - 如果您的 find 支持 -delete - 使用 find 進行刪除:

find -type d -name 27-Jan -empty -delete

既然是-delete 暗示-depth,它會先走下樹到目錄 3275 ,刪除它,上一步,現在 3274 也是空的,可以刪除,上步到 3273 等等…

男人發現:

   -depth Process each directory's contents before the directory itself.
          The -delete action also implies -depth.

引用自:https://unix.stackexchange.com/questions/40647