find または fd でアンカーを除外する

find または fd でアンカーを除外する

ディレクトリ内のすべてのファイルを(再帰的に)検索したいが、たとえばディレクトリ内.gitnode_modulesサブディレクトリ内のファイルは省略したいとします。次のようにします。

$ fd -uut f -E .git -E node_modules

しかし、それは、例えば、除外したり./some/dir/node_modules/*、そういったものになります。

この場合はおそらく問題ありませんが、何かを見つける必要があるたびに、アンカーなしの検索でよいかどうかを考えたくはありません。場合によっては、アンカーなしの検索でよいかどうかは言うまでもありません。

./dirを除外し、 は除外しないようにするにはどうすればよいですか./**/dir?

答え1

2 つのケースを区別するには、-path述語を使用します。

$ find . -path ./a -prune -o -type f -print

関連情報