popd / pushd yol yığınını kaldırma veya temizleme


39

pushdÇok defa içtikten sonra , tüm yol yığınını silmek istiyorum.

popdYığındaki tüm öğeleri nasıl yaparım ?

popdYığında kaç tane olduğunu bilmeye gerek duymadan isterim ?

Bash kılavuzu bu gibi görünmüyor .

Bunu neden bilmem gerekiyor? Ben titizim ve yığını temizliyorum.


1
BTW, bash kılavuzunun tamamı gnu.org'da bitmiştir. Tümünü bir sayfa sürümünde kullanıyorsanız, orada bir şeyler bulmak daha kolay olabilir.
jw013

Ah diliyorum google bu endeksli. Thanks @ jw013
chrisjlee

Yanıtlar:


47

dirs -c aradığın şey bu.


1
Bu does yığını boşaltmak, ama yok değil yığın alttan çalışma dizinini geri
Eliran Malka

8

Amacıyla her iki yığın boş ve her iki yığın alttan çalışma dizini geri:

  • bu dizini alın dirs, bu dizine geçin ve yığını temizleyin:

    cd "$(dirs -l -0)" && dirs -c

    -lSeçenek burada çalışırsanız emin biz başarısızlığa uğratma yapmak, tam yollarını listeler cdhalinde ~ve -0yığın alttan verilerini geri çağırır ilk giriş.

    @ jw013, yol genişletmelerinden kaçınarak bu komutu daha sağlam hale getirmeyi önerdi:

    pushd -0 && dirs -c
  • veya, popdbir hatayla karşılaşana kadar (bu, popddizin yığını boşken bir aramanın durumu olan ):

    while (( $? == 0 )); do popd; done

1
İlk yöntem tam olarak istediğim şeydi. İkincisi, pushdbirkaç kez aradığım , sonra ortadaki dizinlerden birini çıkardığımdan, sonra popdaçmaya çalıştığımda başarısız olduğum için benim durumumda işe yaramazdı. Başlamış olduğum yere geri dönebilmek için ortalıktaki bütün bu sersemlemiş eşyaları atlatmam gerekiyordu.
Chuck Wilbur

right @ChuckWilbur - dir yığın şifreli, popdseni kurtarmak olmaz :)
Eliran Malka

Bunun pushd -0yerine daha iyidir cd "$(dirs ...)".
jw013

@ jw013 nasıl yani? bu, direk yığınına daha da fazla bulaşır (ki burada temizlemeye çalışıyoruz ..)
Eliran Malka

1
cd "$(...)"% 90, muhtemelen% 99 kullanım koşullarında çalışıyor, ancak pushd -0güvenle% 100 diyebiliyorsunuz. Kabukta genişleyen dosya / dizin yollarıyla ilişkili çok fazla sayıda potansiyel çözüm ve son durum var, yapılacak en sağlam şey tamamen tamamen kaçınmak pushd -0. Asla riske girmezseniz tuhaf kenarlı bir davayla bir böcek tarafından yakalanma şansınız yoktur. Unix dosya / yol adlarıyla ilgili olası baş ağrıları hakkında daha fazla bilgi edinmek istiyorsanız, iyi bir başlangıç ​​noktası: mywiki.wooledge.org/ParsingLs
jw013
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.