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.