「-d」というファイルを削除する[複製]


18

重複の可能性:
bashから「-p」という名前のファイルを削除するにはどうすればよいですか?
Linuxでこの名前のファイルを削除するには:-] ??????? q
-rfというファイルを削除するには、どのコマンドを使用する必要がありますか?

誤って-dというファイルを作成しました

ワイルドカードと同様に一重引用符と二重引用符を使用して削除しようとしましたが、毎回「rm」でこのエラーが表示されます。

警告:--directory(-d)オプションは文書化されておらず、何もしません。空ではないdirs rmを削除するには-rfを使用します。オペランドがありません詳細については、「rm --help」を試してください。

ファイルを削除するにはどうすればよいですか?

回答:


44
rm -- -d

--「オプションの終わり」を意味します。これに続くコマンドラインのそれ以上のものは、オプションではなく引数(つまり、ファイル名)として解釈されます。



8

この特定のケースでは、「-」を使用するのがはるかに簡単です。ただし、印刷できない制御文字を含むファイルに遭遇した場合のより一般的な解決策は、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

0

Gnu-findには-deleteオプションがあります:

find -name "-d" -delete

他に試すことができます

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

しかし、上記の--- solutionはより短く、フラグの解釈を停止する方法は-をgetopt-libraryを使用して多くのプログラムで使用されるため、一般に学習することは有用です。

ただし、find / -deleteも学習するのに非常に役立ちます。どちらの例も、「-d」という名前のファイルを再帰的に削除することに注意してください。これは頻繁には発生しませんが、「-d」という名前のファイルが1つある場合は、さらに多くのファイルがあります。:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.