2011年8月9日火曜日

ある階層以下を検索結果に表示させない

Linuxのコマンドを使って、あるディレクトリ以下を検索させないようにするには、どうすれば良いのでしょうか?
よくあるのが、Subversionからチェックアウトしてきたファイルに .svn が含まれていて、それを省きたい場合です。

◆カレントディレクトリのファイル全部を見る場合
find . -type f

◆一部のディレクトリを省く場合
-prune のオプションを使うことで、指定したディレクトリ以下は対象にしません。
find . -name '.svn' -prune -o -type f

しかし、これだけだと、
./.svn
がまだ残ってしまうのです…。

そんな時は、最後に-printを付けます
理由はmanを見てね(^^;
find . -name '.svn' -prune -o -type f -print   

◆ 複数ディレクトリを対象にする場合
ORを用いて、-o -name 'XXXXX' -prune のセットを追加していきます。

find . -name '.svn' -prune -o -name 'XXXXX' -prune -o -type f -print   


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。