2011-01-20 10 views
7

Linux上のカレントディレクトリの直下のサブディレクトリをすべて見つけるにはどうすればよいですか?Linux上の現在のディレクトリの直下にあるサブディレクトリをすべて見つけるにはどうすればよいですか?

+0

現在のディレクトリ内のディレクトリのレベルまたはその下位の構造全体のレベルと同じように即時ですか? –

+2

どの言語/ツールですか? – peoro

答えて

5

サブディレクトリのリストを取得するだけであれば(使用する言語/ツールを気にする必要はありません)findは必要なコマンドです。

ディレクトリツリー内で何かを見つけることができます。

の場合は、子ディレクトリのみが必要であることを意味しますが、孫の-maxdepthオプションはこのトリックを行いません。その後-typeはあなたがディレクトリのみを探していることを指定できます:

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

この解決策は正しくありません。結果には親ディレクトリ 'YOUR_DIRECTORY'が含まれています。 – oberlies

+0

@oberlies:OPは、相対パスのないディレクトリの名前だけを望んでいるとは指定していませんでした。多くの(ほとんどの)目的のために、 '/ dir'と' dir'はまったく同じです。 – peoro

+0

提案されたコマンドの結果は、 'YOUR_DIRECTORY YOUR_DIRECTORY/subdir01 YOUR_DIRECTORY/subdir02 YOUR_DIRECTORY/...'のようになります。 – oberlies

11

使用ls -d */

説明:

  • -dようになりますlsのではなく、その内容のディレクトリ名を印刷します。
  • スラッシュは、ファイルではなくディレクトリのみを考慮します。
-1

この

LSを使用してください| grep/$

grepは/ whichディレクトリで終わるものを見つけます。

+1

これは一般的な解決策ではありません。 'ls'は' ls -F'にエイリアスされていると仮定します。 – oberlies

1

また、以下使用することができます -

$ ls -l | grep '^d' 

簡単な説明:「長いリストのように、ディレクトリが「D」で始まるので、上記のコマンド(grep)は、それらの結果をフィルタリングし、で始まりますd '、これはディレクトリ以外のものです。

関連する問題