1

私は広範囲に検索しましたが、この一見単純な質問に対する答えを見つけることができないようです!

私はいくつかのドットファイルを含むディレクトリを持っています (それらはたまたまです.gitが、簡単に他のものである可能性が.svnあります) といくつかの非ドットファイルがあります。ピリオドで始まるものを除いて、このディレクトリのすべてのサブディレクトリを一覧表示する一般的な関数を探してい.ます。

の変種だと思っていfind . -type dますが、いくつかの呪文を試してみましたが、不足しています。

何かのようなもの

def find_files(listing, dir):
    for entry in listdir(dir):
        if isdir(entry) and does_not_begin_with_dot(entry):
            listing.append(entry)
            find_files(listing, entry)

(誰もこれを尋ねなかったことに驚いた - 私が見ていないもっと bash っぽい方法があるのだろうか?)

4

3 に答える 3

4
find . -type d | grep -v '/\.'

...また...

find . -type d -a ! -name '.?*' -o -name '.?*' -a ! -prune
于 2011-02-06T22:37:17.617 に答える
2

これを試してください:

find . -mindepth 1 -name '.*' -prune -o \( -type d -print \)
于 2011-02-06T22:36:21.027 に答える
0

これがあなたが望むものかどうかはわかりませんが、bash のすべてのサブディレクトリを再帰的にリストするには、通常次のようにします

ls -R | grep /

私が試したいくつかの検索オプションよりもはるかに高速に動作します。欠点は、ls を使用すると最後に余分なコロンが表示されることですが、それは私には当てはまりません。

//編集わかりました、ここから他の検索回答を試してみましたが、それらは非常に高速に機能します...しかし、lsよりも覚えにくいです。:)

于 2011-02-06T22:53:50.343 に答える