サブディレクトリに下がらない特定の文字で始まるファイルのLinuxディレクトリリストを取得する方法


17

多くのファイルと多くのサブディレクトリを含むディレクトリにいるとします。

文字「d」で始まるすべてのファイルのディレクトリ一覧を取得します。入力する

ls d*

返されるのは、ほとんどがサブディレクトリ内のファイルです(特に、「d」で始まるサブディレクトリ内のファイル)。

現在のディレクトリ内のファイルとディレクトリ名のみをどのようにリストしますか?

回答:


31

ああ、私はちょうどそれをマニュアルページの6回目の読書で見つけました。それはあまり意味のない名前の「ディレクトリ」パラメータです

ls -d d* 

6
manページ読み直してこの回答書くのにたった29秒しかかかりませんでしたか?それは簡単です:-)
balpha 09

1
さらに、ls -dd * /はディレクトリのみを表示します。
innaM

6
balpha-質問を提出する前にそれを発見し、それを理解するのに非常に時間がかかった場合、将来の検索者を助けてqとaをここに投稿できるかもしれないことに気付きました。
dggoldst 09

3
けっこうだ; 何も問題はありません。
balpha

1
それでも、CppLearner、それは実際に動作します。それを試してみてください。
-dggoldst

10

別の興味深い解決策は、

ls | grep ^d

正規表現の柔軟性を提供します。


3
そして、正規表現の複雑さ!;-)
クリス・ナバ

1
これは興味深いソリューションであり、正規表現を使用するというアイデアは気に入っていますが、lsに追加のパラメーターを追加すると壊れてしまいます。|例えば"グレップ^ D LSは-l"
dggoldst

ただし、すべてのパラメーターではありません。ls -a | grep "^ \。" すべての「隠しファイル」を印刷します。
クエル09

ls flagsこのアプローチを使用する場合、その他は機能しません。たとえばls -ltr | grep ^d動作しません。一方、@ dggoldstの回答で提案されたものはそうです。
hitesh israni

3

見つける。-maxdepth 1 -name d * -type f

さて、ここでfindを使用するのはちょっとやり過ぎです。ほんの少し。


1
しかし、特定のユーザーのすべての直接ディレクトリをリストするのに役立ちました:find /home/ -maxdepth 1 -type d -user www-data。おかげで、+ 1
シリルN.

1

ls -ld:サブディレクトリに降りることなく、ディレクトリのリストを提供します。

例:

ls -ld Cust*
このコマンドは、で始まるファイルとディレクトリのリストを提供しCustます。


1
これは、5年前に受け入れられた回答と本質的に同じです。
スコット14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.