2016-04-01 54 views
-1

嗨,大家好我是一個完整的初學者編程,並試圖谷歌這個答案,但沒有喜悅。我不能使用rmdir刪除一個目錄,因爲似乎有一個同名的目錄中的文件不能被刪除

我正在關注Zed Shaw的「Command Line Crash Course」,並用rmdir命中了牆。

我用一個mac並知道刪除像.DS_Store這樣的隱藏文件,並已爲我的目錄。但是,它仍然表示,該目錄是不是空的,ls -la似乎顯示共享目錄名文件:

請參閱以下目錄joe

drwxr-xr-x 3 MyLaptop staff 102 1 Apr 16:52 . 

drwxr-xr-x 4 MyLaptop staff 136 31 Mar 22:32 .. 

drwxr-xr-x 3 MyLaptop staff 102 1 Apr 16:51 joe 

我試圖刪除此文件,但它不會允許我和我不能刪除目錄,任何人都可以建議一個解決方案?

回答

3

那就是不是一個文件。在行首的d告訴你它是一個目錄。實際上,它是您要刪除的確切目錄。

rmdir命令要求joe目錄爲空。要檢查是否joe是空的使用:

$ ls -la joe 

或移動到該目錄第一:

$ cd joe 
$ ls -la 

你是不是在joe父目錄使用ls -la,因此joe本身顯示向上內容。

因此,檢查哪些文件在joe之內,並使用rm刪除它們。 ...條目並不真正計數,因爲它們是對當前目錄和父目錄的引用。


注意rm也可以刪除目錄,所以你可以簡單地做rm -r joe刪除裏面joejoe目錄本身的所有文件。

+0

非常感謝!仍然在掌握導航,但真的很感謝幫助。 – JandD

+0

「這不是一個文件」。在Unix家族系統中,目錄是具有特殊功能的文件,以包含其他文件的列表。 – SLePort

+0

@Kenavoz是的,但最終是挑剔。OP很清楚地使用術語文件而不知道Unix的所有技術細節,我相信在這裏添加所有這些只會讓初學者感到困惑。 – Bakuriu

0

您還可以使用

$ RM -r喬

的-r選項rm命令會遞歸刪除目錄的內容,以及目錄本身。

從RM手冊頁:

 -r, -R, --recursive 
    remove directories and their contents recursively 
相關問題