219
find . -type d

ある開始点の下にあるすべてのディレクトリを見つけるために使用できます。ただし、現在のディレクトリ ( .) も返されるため、望ましくない場合があります。どうすれば除外できますか?

4

5 に答える 5

244

findパラメータによって再帰の深さを制御できるだけでなく-maxdepth、対応するパラメータを使用して「上」から深さを制限することもでき-mindepthます。したがって、実際に必要なのは次のとおりです。

find . -mindepth 1 -type d
于 2012-11-23T07:55:10.850 に答える
222

POSIX 7 ソリューション:

find . ! -path . -type d

この特定のケース ( .) では、golfs はmindepthソリューションよりも優れています (24 文字対 26 文字) !

他のディレクトリを除外するには、あまり効果がなく、DRYness の変数が必要です。

D="long_name"
find "$D" ! -path "$D" -type d

!との間の私の決定木-mindepth:

  • 脚本?!携帯用に使用。
  • GNU でのインタラクティブなセッション?
    • 除外し.ますか?コインを投げます。
    • 除外しlong_nameますか?を使用し-mindepthます。
于 2013-06-30T10:32:03.380 に答える
24

find ./* <...>最初のレベルのドットファイルを無視しても構わない場合に使用します ( *glob は bash のデフォルトではこれらと一致しません。shopt ビルトインの「dotglob」オプションを参照してください: https://www.gnu.org/software/bash /manual/html_node/The-Shopt-Builtin.html )。

Eclipse tmp # find .
.
。/画面
./screen/.testfile2
./.X11-unix
./.ICE-unix
./tmux-0
./tmux-0/デフォルト
Eclipse tmp # find ./*
。/画面
./screen/.testfile2
./tmux-0
./tmux-0/デフォルト
于 2015-03-02T12:21:03.750 に答える
3

まあ、簡単な回避策もあります(Windows git bashでは解決策が機能しませんでした)

find * -type d

パフォーマンスはそれほど高くないかもしれませんが、仕事は完了します。私たちが時々必要とするものです。

[編集] : @AlexanderMills がコメントしたように、ルートの場所に隠しディレクトリ (例: ./.hidden) は表示されませんが、隠しサブディレクトリ (例: ) は表示され./folder/.hiddenSubます。[Windows で git bash でテスト済み]

于 2018-05-19T08:21:26.547 に答える