web-dev-qa-db-ja.com

「ls」コマンドにディレクトリのみを表示するオプションはありますか?

時々、ファイルではなくディレクトリのみをチェックする必要があります。コマンドlsにオプションはありますか?またはそれを行うためのユーティリティはありますか?

[〜#〜] edit [〜#〜]:Mac OS Xを使用しており、ls -dがくれます.ディレクトリがあっても。

86
prosseek

私はすでに選択された答えがあることを知っていますが、lsだけで要求された動作を得ることができます:

ls -ld -- */

(「-」はパラメータの終わりを示し、ハイフンで始まるフォルダ名がそれ以降のコマンドオプションとして解釈されないようにすることに注意してください。)

これにより、シェルが実行されている現在の作業ディレクトリ内の非表示ではない(シェルのグロブを展開するように構成していない限り)すべてのディレクトリが一覧表示されます(ディレクトリへのシンボリックリンクも含まれていることに注意してください)。他のフォルダのすべてのサブディレクトリを取得するには、次を試してください:

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

-lはオプションです。

96
Steven D

いいえ、ただし単純なfindコマンドで実行できます。

find . -type d -depth 1

またはgrep

ls -F | grep /

その後、必要に応じていずれかをエイリアス化できます。

16
gvkv

また、非表示のディレクトリを表示する必要があったため、上記の提案を自分のニーズに合わせて変更しました

ls -d -- */ .*/

(シェルによっては、.および..

7
Neil Chandler

tree ユーティリティが好きで、ディレクトリ構造の概要を把握できます。 MacPortsと私が試したすべてのLinuxディストリビューションで利用できます。

tree -d -L 2

これにより、すべてのディレクトリが2レベルの深さで表示されます。

7
Claes Mogren

zsh(macOSのデフォルトで検出されるように、以前は/bin/shそこにあります)、グロブ修飾子を使用して、ファイルのタイプに基づいてファイルを選択します:

  • 非表示でないディレクトリを一覧表示します。

    ls -d -- *(/)
    
  • すべてのディレクトリを一覧表示します。

    ls -d -- *(D/)
    

    .および..は常に除外されます。必要に応じて個別に追加してください)

  • ディレクトリへのシンボリックリンクも含めます。

    ls -d -- *(D-/)
    

    -は、シンボリックリンクの解決後にさらに修飾子が適用されるようにします)。

3

ディレクトリを一覧表示するオプションは1つだけではありません...

ただし、-d(内容ではなくディレクトリ自体をリストする)および*/を使用して、ディレクトリ自体を照合することができます。

ls -d */

そして、隠しドットにはls -d .*/のドットを使用してみてください。

楽しみのために、ls -dls */を試してください。違いは明らかになります!

参照:

0
marcio