İçinde ve işareti olan bir alt dizin adından nasıl çıkabilirim?


9

Bir kornshell çalıştırmak ve bir dizin ağacını geçmeye çalışıyor. Aşağıdaki gibi bir alt dizine cd yazmak istiyorsunuz:

 -3ab_&_-3dc.img

Sorum şu: Bu addaki ve işaretinden nasıl kaçmam gerekiyor? Farklı çift tırnak ve ters eğik çizgiler kombinasyonlarını başarılı olmadan denedim.

Yanıtlar:


11

İçin &(ya da hemen hemen başka bir karakter, iki basit olanakları vardır.

  • Her şeyin etrafına tek tırnak işareti koyun: ' -3ab_&_-3dc.img'
  • Her zahmetli karakterden önce ters eğik çizgi koyun: -3ab_\&_-3dc.img

İki istisna vardır:

  • Tek tırnak yöntemi tek tırnak için çalışmaz. Ters eğik çizgi tek tırnak içinde özel değildir, bu yüzden doğrudan da kullanamazsınız. Yapabileceğiniz tek tırnaklı dizgeyi sonlandırmak, hemen ters eğik çizgi artı tek tırnak işareti kullanmak ve tek tırnak işaretini yeniden başlatmaktır. Yani, örneğin, dizinin adı ise ise foo'bar\qux: cd 'foo'\''bar\qux'. Bunu şu şekilde hatırlayabilirsiniz: tek tırnak içinde '\''size tek bir teklif verir.
  • Ters eğik çizgi yöntemi yeni satırlarda çalışmaz: ters eğik çizgi yeni satır dikkate alınmaz. Bir satırsonu etrafına tek tırnak işareti koymanız gerekir.

Çift tırnak işaretleri de kullanabilirsiniz, ancak bazı karakterlerden önce ters eğik çizgi koymanız gerekir. Tek tırnak işaretleri daha basittir.

Burada ek bir zorluk var, yani dizinin adı bir tire ile başlıyor. Bu karakter, cdbir seçeneğin izlediği komuta (neredeyse her komut gibi) söyler . Çizgi kabuk için değil, sadece komut için özeldir, bu nedenle tırnak işaretleri onu etkilemez. Bir seçenekle yorumlanmadan komutla kısa çizgiyle başlayan bir argümanı iletmenin iki yolu vardır:

  • Bu argümanı ifade etmenin başka bir yolunu bulun. Bir dosya adı için, ./ön tarafa eklemek yine de aynı dosyayı belirtir.
  • Argümanı daha --önce koyun . Bu komutun seçenekleri aramayı durdurmasını söyler.

İşte bu alt dizine geçmenin bazı yolları:

cd -- '-3ab_&_-3dc.img'
cd -- -3ab_\&_-3dc.img
cd ./-3ab_\&_-3dc.img
cd './-3ab_&_-3dc.img'

Teşekkürler. Ben de bu formatı denediğimi sanıyordum, ama ve işareti kaçmayı unuttum (3. örneğinde olduğu gibi). Yaptığımda işe yaradı.
RCinICT

5

Ve işareti kaçmak zorunda, ama yaşadığınız sorun -ve işareti yerine , muhtemelen lider . Önde gelen -cd, seçeneklerden geçtiğinizi düşünüyor. Bunu kullanarak bu sorunu çözebilirsiniz ./:

cd './-3ab_&_-3dc.img'

&Kesinlikle bir sorundur. Gelince -, kabuk bağlıdır. Zsh cdbir ile başlayan bir dizine oldukça mutlu -. Ancak bash değil.
Patrick

Teşekkürler. Ben de bu formatı denediğimi sanıyordum, ama ve işareti kaçmayı unuttum. Yaptığımda işe yaradı.
RCinICT
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.