2011-01-20 18 views

cevap

5

sadece (kullanmak dil/araç hakkında önemsemeden) alt dizinleri bir listesini almak gerekiyorsa find ihtiyacınız komuttur.

Bir dizin ağacında bir şey bulmak mümkün değil.

hemen tarafından size tek çocuğu dizinleri ihtiyaçları yoktur, ancak torun -maxdepth seçenek hile yapmak anlamına edin. Sonra -type Eğer sadece dizinleri aradığınız belirtmek sağlayacak:

find YOUR_DIRECTORY -type d -maxdepth 1 -mindepth 1 
+0

Bu çözüm doğru değil: Sonuç, "YOUR_DIRECTORY" üst dizini içerir. – oberlies

+0

@oberlies: OP, yalnızca ilgili yol olmayan dizinlerin adını istediğini belirtmedi. Pek çok (çoğu?) Amaç için./Dir 've' dir' tam olarak aynıdır. – peoro

+0

Önerilen komut aşağıdaki listede yer alır: "YOUR_DIRECTORY YOUR_DIRECTORY/subdir01 YOUR_DIRECTORY/subdir02 YOUR_DIRECTORY/...", bu nedenle ilk liste girişi doğru değil. – oberlies

11

kullanın ls -d */.

Açıklama:

  • -d yapacak ls yerine içeriğinin dizin adlarını yazdırmak.
  • Kesik çizgi, yalnızca dizinlerin dikkate alınmadığını, dosyaların değil, olmasını sağlar.
-1

bunu kullanın

ls | grep/$

grep içinde/dizinleri yapmak hangi biten bir şey bulmak.

+1

Bu genel bir çözüm değildir. Ls'nin ls -F'ye takılmış olduğunu varsayar. – oberlies

1

Ayrıca aşağıda kullanabilirsiniz -

$ ls -l | grep '^d' 

kısa açıklaması: Uzun bir listenin olduğu gibi, rehberler 'd' ile başlayan, bu nedenle yukarıdaki komutu (grep) ile başlaması bu sonuca, filtreler ' d ', dizinlerden başka bir şey değil.

İlgili konular