刪除名為“-d”的檔案

刪除名為“-d”的檔案

可能的重複:
如何從 bash 中刪除名為「-p」的檔案?
如何在 Linux 上刪除具有此名稱的檔案:-]??????q
我需要使用什麼命令來刪除名為“-rf”的檔案?

我不小心創建了一個名為:-d 的文件

我嘗試過使用單引號和雙引號以及通配符來刪除它,但每次“rm”都會給我這個錯誤:

警告:--directory (-d) 選項未記錄且無操作。使用 -rf 刪除非空目錄 rm: 缺少操作數 嘗試“rm --help”以獲取更多資訊。

我該如何刪除該檔案?

答案1

rm -- -d

--意思是「選項結束」。命令列上接下來的任何內容都被解釋為參數(即您的情況下的檔案名稱),而不是選項。

答案2

rm ./-d

是你問題的答案。

答案3

在這種特定情況下,使用“--”是迄今為止最簡單的。但是,如果您偶然發現具有不可列印控製字元的文件,更通用的解決方案是透過 inode 引用該文件:

% ls -ali aFileWithFunnyCharacters
      9215 -rw-r-----   1 chris  chris         0 Sep  8 16:55 aFileWithFunnyCharacters
% find . -xdev -inum 9215 -exec rm {} \;
% ls -ali aFileWithFunnyCharacters
aFileWithFunnyCharacters: No such file or directory

答案4

Gnu-find 有一個 -delete 選項:

find -name "-d" -delete

否則你可以嘗試

find -name "-d" -exec rm {} ";" 

但是上面的 -- - 解決方案更短,並且許多程式都使用 -- 來停止解釋標誌的方法,使用 getopt-library,所以學習它通常是一件有用的事情。

但是 find/-delete 也是非常有用的東西。請注意,這兩個範例都會遞歸地刪除名為“-d”的文件,這可能不會經常發生,但如果您碰巧有一個名為“-d”的文件,則可能會有更多文件。 :)

相關內容