findで特定のディレクトリを対象外とする方法

2012-07-22

find で特定のディレクトリだけ対象から外したい時ってなにげによくあると思いますが、今までは調べるのが面倒臭かったので、、、

 %  find . -type f | grep -v xxxxxx


みたいな感じでやっておりました(/_\*)
ま、これでも別にいいのですが、その除外ディレクトリ以下に大量にファイルがあったりすると速度的にとんでもないことになりますよね。。。

ということで、そんな状況に陥ったため、真面目に少し調べてみました(^_^;
予想通りというか、やはり美しい方法があるのですな~

 % find . -type d -name 'xxxxx' -prune -o -type f -print


-print の有無で xxxxx 自身が含まれたり含まれなかったりするのがよく分かりませんでしたが、とりあえず期待する動作をゲットできました(^_^;

find は奥が深いですな。
sed はさらに奥が深いけど(/_\*)

2012
6