Bash ile Linux altında '-p' adında bir dizin nasıl oluşturulur? [çift]


22

Bash'de nasıl bir dizin oluşturabilirim -p?

mkdir -pbaşarısız oldu.
mkdir "-p"başarısız oldu.
mkdir "\-p"başarısız oldu.
mkdir \-pbaşarısız oldu.


1
Bunların hepsinin bash parametresinden kaçmaya çalıştığını unutmayın. Kaçmadığı gibi kaçan ile aynı olduğu için, üçüncüler dışındakilerin hepsi "-p" dizesini mkdir'e gönderir, bu da onu bir seçenek olarak ayrıştırır. Seçenek ayrıştırma işlemi bash içerisinde yapılmaz, bu yüzden bunun etrafındaki herhangi bir yol (aşağıdaki cevaplarda açıklandığı gibi) mkdir'in bir özelliğidir (veya bir hata eksikliği).
Score_Under

11
Neden böyle bir dizin isteyeceğini sormalısın. Kullanmak için bir PITA olurdu.
Daniel R Hicks

3
@DanielRHicks: Bu klasörü yanlışlıkla oluşturdum ama nasıl sileceğimi bilmiyorum.
Jichao

4
Öyleyse, soruyu "Linux altında" -p "adlı bir dizini Bash ile nasıl silebilirim?
chepner

@chepner: Çünkü aslında aynı problemler var. Dizini silmeye çalıştım rmdirancak aynı hatayla başarısız oldum .
Jichao

Yanıtlar:


40

Yardımcı programların çoğu ( testve hariç tüm POSIX uyumlu olanlar echo) "seçeneklerin sonu" seçeneğini destekler -- , böylece aşağıdakileri çalıştırabilirsiniz:

mkdir -- -p

Bu, özellikle bir çizgi ile başlayabilecek dosyaları yeniden adlandırırken veya kaldırırken kullanışlıdır. Scriptlerde her zaman kullanmalısın

mv -- "$filename"

düz mv "$filename"veya daha da kötüsü, kote olmayan bir dosya adı yerine.


3
Muhteşem. Bunu bilmek gerçekten çok güzel
Bruno9779

18

mkdir ./-p

Diğer programların çoğunun aynı "numarayı" kullanması gerektiğini unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.