このfindコマンドをより簡潔にすることはできますか?

このfindコマンドをより簡潔にすることはできますか?

次の2つのコマンドを見てください。

find ~/{Documents,Desktop,Downloads,Music,Videos} -mmin -120 -type f
そして
find . ! -path "*opera*" ! -path "*mozilla*" ! -path "*google-chrome*" -mmin -120 -type f

1つ目はfind特定のフォルダに関連する結果を提供するよう指示し、2つ目はその逆を実行します。しかし、2番目のコマンドをより簡潔にする方法はありますか?それとも、! pathすべてのフォルダの前にある必要がありますか?

オペレーティングシステムはLubuntu 12.10です。

答え1

findGNU正規表現(非標準拡張)を使用できます。

find . -regextype posix-extended ! -regex '.*(opera|mozilla|google-chrome).*'

他の(より効率的な)ものを使用することもできます-regextype。確認していません。

クリスタン解決策は2番目のコマンドとまったく同じではありませんfindいいえサブディレクトリからパターンを除外します(それでも同様のコンテンツを見つけることができます./somedir/some-mozilla-dir)。

上記のコマンドにはこれらの制限はありません。

関連情報