LinuxでBashを使用して '-p'という名前のディレクトリを作成する方法は?[複製]


22

Bashでは、どのような名前のディレクトリを作成でき-pますか?

mkdir -p失敗しました。
mkdir "-p"失敗しました。
mkdir "\-p"失敗しました。
mkdir \-p失敗しました。


1
これらはすべて、bashのパラメーターをエスケープしようとしていることに注意してください。エスケープされていないのと同じエスケープされているので、3番目以外のすべては、文字列「-p」をmkdirに送信するだけで、オプションとして解析されます。オプションの解析はbashでは行われないため、これを回避する方法(以下の回答で説明)はmkdirの機能(またはバグの欠如)です。
Score_Under April

11
そのようなディレクトリが必要な理由を尋ねる必要があります。使用するのはPITAです。
ダニエルRヒックス14

3
@DanielRHicks:このフォルダーを誤って作成しましたが、削除する方法がわかりません。
Jichao

4
では、質問は「Bashを使用したLinuxで「-p」という名前のディレクトリを削除する方法」ではないでしょうか?
chepner

@chepner:それらは実際には同じ問題だからです。でディレクトリを削除しようとしましrmdirたが、同じエラーで失敗しました。
Jichao

回答:


40

ほとんどのユーティリティ(testおよびを除くすべてのPOSIX準拠のものecho)は、「オプションの終わり」オプションを サポートしている--ため、次を実行できます。

mkdir -- -p

これは、ダッシュで始まる可能性のあるファイルの名前を変更または削除するときに特に役立ちます。スクリプトでは、常に使用する必要があります

mv -- "$filename"

単純な、mv "$filename"またはさらに悪いことに、引用されていないファイル名の代わりに。


3
驚くばかり。これは知って本当に良いです
Bruno9779

18

mkdir ./-p

他のほとんどのプログラムは同じ「トリック」を使用する必要があることに注意してください。

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