Soru Bu adı “-2” olan bir dizine (tire ile başlayan) nasıl cd yapılır?


Adlı bir dizinim var:

-2

Ben cd içine yazmak istiyorum ama cd şikayet ediyor:

bash: cd: -2: invalid option

Başarısız olarak denedim:

cd "-2"
cd '-2'
cd \-2

Herhangi bir çözüm?

Düzenleme: sunucuda mc, vb. Gibi dosya tarayıcıları yoktur.


149
2018-01-03 20:29


Menşei


Süper kullanıcı ile ilgili soru: superuser.com/questions/361573/... - yms


Cevaplar:


En az iki yol:

  1. Kullan -- argüman.

    cd -- -2
    

    Bu, GNU araçlarında ortak olan ve sonrasında görünen hiçbir şeyi tedavi etmeyen bir sözleşmeyi kullanır. -- bir komut satırı seçeneği olarak.

    Olarak Yorumcu not, bu kongre ayrıca POSIX standardında tanımlanmış:

    Varsayılan davranış: Bu bölüm "Yok" olarak listelendiğinde, uygulamanın herhangi bir seçeneği desteklemesine gerek olmadığı anlamına gelir. Seçenekleri kabul etmeyen, ancak işlenenleri kabul eden standart araçlar, "--" atılacak ilk argüman olarak.

    Tanıma gerekliliği "--" Uygun uygulamaların, işlenenleri, uygulamanın bir uzantı olarak sunabileceği herhangi bir isteğe bağlı seçenekten korumanın bir yolu olması gerektiğidir. Örneğin, standart yardımcı program foo, hiçbir seçenek almadan listeleniyorsa ve uygulamanın bir lider kısa çizgi ile bir yol adı vermesi gerekiyorsa, aşağıdaki gibi güvenli bir şekilde yapabilir:

    foo -- -myfile
    

    ve herhangi bir problemle karşılaşmamak -m bir uzantısı olarak kullanılır.

    Hem de:

    Yönerge 10:
      Argüman -- seçeneklerin sonunu belirten bir sınırlayıcı olarak kabul edilmelidir. Aşağıdaki argümanlar, başlayacak olsalar bile, işlenen olarak ele alınmalıdır. '-' karakter. -- argüman bir seçenek veya bir işlenen olarak kullanılmamalıdır.

  2. Yolu açıkça belirtin:

    cd ./-2
    

    Bu, geçerli dizinin açıkça adlandırıldığı yolu belirtir..) başlangıç ​​noktası olarak.

    cd $(pwd)/-2
    cd /absolute/path/to/-2
    

    Bunlar yukarıdaki varyasyonlardır. Bu çeşit varyasyonların herhangi biri mümkün olabilir; Okuyucuya hepsini keşfetmek için bir egzersiz olarak bırakacağım.


250
2018-01-03 20:32



Sadece GNU değil, POSIX standardının bir parçası. Görmek 1.11 Yardımcı Program Açıklama Varsayılanları ve 12.2 Yardımcı Program Sözdizimi Kuralları (kılavuz # 10). İtibaren cd sayfa " cd hizmet programı, bölüm 12.2'ye uygun olmalıdır. - Dietrich Epp
Şimdi sadece adında bir dizine cd yapmayı merak ediyorum -! - sergiol
@sergiol Aynı şekilde. - Michael Hampton♦
@ArtB: Hayır. Teklif sadece alan ayrımını etkiler. Yani "hello world" bir argüman ama hello world iki ve "-2" aynıdır -2. - Dietrich Epp
@sergiol: Ya cd -- -- veya cd ./-- çalışmalı. - Keith Thompson


Bu çalışmalı:

cd -- -2 

- Daha fazla seçenek yok demektir


48
2018-01-03 20:33





'-2' geçerli dizinde ise bu çalışır.

    cd ./-2

Yazarak otomatik tamamlayabilirsiniz - ve sekmesine basmak.


25
2018-01-04 06:19





cd /home/...../-2 da çalışır. Erişimin tam yolunu verin.


10
2018-01-04 02:46





Sadece tamamlamak için, bu dizini silmek / silmek isterseniz aşağıdaki komutu kullanabilirsiniz:

rm -r -- -2

6
2018-01-04 14:14





Bu sorunun çoktan cevaplandığını biliyorum. Eğer birinin benim gibi bir durumu varsa, onlar için:

Bir java uygulaması çalıştırdım ve ile başlayan bir dizin arıyordum. <path>, Uygulamayı çalıştırmadan önce uygun bir yolla değiştirmem gerekiyordu. Ancak bunu yapmayı unuttum. Uygulama, adlandırılmış bir dizin oluşturdu <path>.

Denedim cd <path> - Bana hata verdi "-bash: beklenmedik token newline yakınında sözdizimi hatası" Buradaki öneriye dayanarak (anladığım dizin için - ve denemiyorum) denedim cd -- <path>. Ancak, aynı hatayı aldım.

Denediğimde cd \<path>\ - Bu işe yaradı!

Arkaplan bilgisi:

"<" Ve ">" sembolleri STDIN ve STDOUT'ları yeniden yönlendirmek için kullanılır, bu yüzden kabuğun onları yönlendirmeler olarak yorumlamaması için dışarıya kaçmaları gerekir.


-1
2017-07-05 14:00