再帰検索は非表示のファイルを検索しないか、非表示のディレクトリで再帰的に検索しません。

再帰検索は非表示のファイルを検索しないか、非表示のディレクトリで再帰的に検索しません。

ディレクトリを再帰的に検索して、隠しファイルではなく隠しディレクトリにないすべてのファイルを見つけたいと思います。ファイルを非表示にするためにデフォルトの名前除外を試してみましたが、find . -type f -not -name '.*'まだ隠されたディレクトリで繰り返されます。

dir/
   file.py
   .hidden_file
   .hidden_dir/
      file.c

私は出力が次のようになります:

./dir/file.py

しかし、私は次のようになります。

./dir/file.py
./dir/.hidden_dir/file.c

編集:ファイルを一覧表示したいです。-type f

答え1

再帰的に使用したくないディレクトリを「持っている」必要があります。

find dir -name '.*' -prune -o -print

通常はtrueを返すため、-prunewithと一緒に使用されるため、short-circuit ORと組み合わせると、目的の隠しファイル/ディレクトリをスキップする効果が-oあります。-print

関連情報