findって面倒

findで、昨日編集したソースを検索したかったんだけど、subvirsionが入っているので、やたらと.svn/xxxが表示されて邪魔。

で、それを回避して、*.cppだけを表示するには、

find . ! -regex '.*svn.*' -regex .*.cpp -mtime -2

"! -regex '.*svn.*'"の部分が、.*(任意の0以上の文字)+svn+.*(任意の0以上の文字)に一致しない!
を示す。"!"の位置に注目!!
で、-mtime -2が、2*24hより前に更新されたファイルを示しているはず。

さらに、.txt .h .cppのどれかとしたければ、\( \)で括るらしい

find . -mtime -2 ! -regex '.*svn.*' \( -regex .*.txt -o -regex .*.cpp -o -regex .*.h \)

man findすると、単に( expr )としか書かれていないけど、\でエスケープしなきゃいけない!!