it-swarm-tr.com

Sadece dizinleri gördüğüm 'ls' komutu ile herhangi bir seçenek var mı?

Bazen dosyaları değil, sadece dizinleri kontrol etmek gerekir. Ls komutu ile herhangi bir seçenek var mı? Yoksa bunu yapmak için herhangi bir yardımcı program var mı?

DÜZENLE : Mac OS X kullanıyorum ve ls -d bana verir . dizinlerim olmasına rağmen.

86
prosseek

Zaten seçilmiş bir cevap olduğunu biliyorum, ama sadece ls ile istenen davranışı alabilirsiniz:

ls -ld -- */

('-' parametresinin sonunu işaretleyerek, tire ile başlayan klasör adlarının başka komut seçenekleri olarak yorumlanmasını önler.)

Bu, çalışmakta olan geçerli çalışma dizinindeki gizli olmayan tüm dizinleri (Shell'in glob'lerini genişletecek şekilde yapılandırmazsanız) listeler (dizinlere sembolik bağlantılar da içerdiğini unutmayın). Başka bir klasörün tüm alt dizinlerini almak için şunu deneyin:

ls -ld /path/to/directory/*/

-L seçeneğinin isteğe bağlı olduğunu unutmayın.

96
Steven D

Hayır, ancak basit bir find komutu bunu yapar:

find . -type d -depth 1

veya grep

ls -F | grep /

Daha sonra gerekirse ikisini de takma adla ekleyebilirsiniz.

16
gvkv

Ayrıca gizli dizinleri görüntülemek gerekiyordu, bu yüzden yukarıdaki önerimi ihtiyaçlarıma uygun olarak değiştirdim

ls -d -- */ .*/

(Kabuğa bağlı olarak, . ve ..)

7
Neil Chandler

Dizin yapısına genel bir bakış için tree yardımcı programını beğendim. MacPorts ve denediğim tüm Linux dağıtımlarında kullanılabilir.

tree -d -L 2

Bu tüm dizinleri gösterir, iki seviye derin.

7
Claes Mogren

zsh ile (macOS'ta varsayılan olarak bulunduğu gibi, hatta /bin/sh orada), türlerine göre dosyaları seçmek için glob niteleyicileri kullanırsınız:

  • Gizli olmayan dizinleri listele:

    ls -d -- *(/)
    
  • Tüm dizinleri listele:

    ls -d -- *(D/)
    

    (. ve .. her zaman hariç tutulur, isterseniz tek tek ekleyin)

  • Ayrıca dizinlere sembolik bağlantılar ekleyin:

    ls -d -- *(D-/)
    

    (-, sembolik çözünürlükten sonra daha fazla niteleyici uygulanmasını sağlar).

3
Stéphane Chazelas

Dizinleri listelemek için sadece bir seçenek yoktur ...

Ama -d (dizinleri değil içeriklerini listeleyin) ve */ dizinleri kendileri eşleştirmek için:

ls -d */

Ve noktayı, gizli olanlar için kullanmaya çalışın, ls -d .*/.

Sadece eğlenmek için şunu deneyin: ls -d ve ls */. Farklılıklar belli olacak!

Ref:

0
marcio