Unix
刪除名稱中帶有連字元的 UNIX 目錄
通過我的愚蠢操作,我不小心創建了一個名為(例如)-A 的目錄,並最終用文件填充它。
我想刪除所說的目錄。我試過了:
rmdir -- -A
但它隨後告訴我該目錄中仍有文件。而且我不知道如何 cd 進入目錄以刪除所述文件。
我應該怎麼做才能擺脫這個麻煩的目錄?
在每個命令上使用 –。
$ ls -la total 32 drwxr-xr-x 3 richard richard 512 Jul 28 15:44 . drwxr-xr-x 3 root wheel 512 Jul 6 17:10 .. $ mkdir -- -A $ ls -la total 36 drwxr-xr-x 2 richard richard 512 Jul 28 15:44 -A drwxr-xr-x 4 richard richard 512 Jul 28 15:44 . drwxr-xr-x 3 root wheel 512 Jul 6 17:10 .. $ cd -- -A $ ls $ pwd /home/richard/-A $ cd .. $ rm -rf -- -A $ ls -la total 32 drwxr-xr-x 3 richard richard 512 Jul 28 15:44 . drwxr-xr-x 3 root wheel 512 Jul 6 17:10 ..
您可以將 ./ 放在文件前面——這樣 rm 或 rmdir 不會表現得好像文件名是一個選項標誌。
您還可以發出選項 – 它告訴 rm 將 – 之後的所有內容都視為文件名,並且它不應再處理任何選項。可能有一些時髦的舊版本的 rm 不遵守這一點,儘管這些天我的古董 unix 動物園變得非常小,所以我不能告訴你哪些版本或者是否有不理解的版本——。
無論如何刪除時,您都應該養成將 ./ 放在名稱前面的習慣——您永遠不知道目錄中是否有 -r 或 -rf 命名的文件。你可以說你應該總是使用 – 但我發現 ./ 更自然,因為它明確表示“我想刪除這個目錄中的文件,而不是任何 * 發生的 glob ”