0
ファイル名マスクパターンがfilemask1
またはfilemask2
のすべてのファイルを検索し、指定されたディレクトリに含まれているunwanted*
パターンを除外したいとします。私は以下を実行しようとしています:findコマンドが意図したとおりに実行されない
find dir/ other_dir/ parent/child/dir/ parent/child/other_dir/ parent/other_dir/ -iname '*filemask1*' -o -iname '*filemask2*' ! -iname '*unwatned1*' ! -iname '*unwanted2*' ! -iname '*unwanted3*' ! -iname '*unwanted4*' ! -iname '*unwanted5*' ! -iname '*unwanted6*' ! -iname '*.xls*'
私はこれを検索しようとしている各パスが含まれているディレクトリから実行しています。上記は不要なパターンを除外することなく、指定されたディレクトリ内のすべてのファイルを私に与えます。
find dir/ other_dir/ parent/child/dir/ parent/child/other_dir/ parent/other_dir/ \(-iname '*filemask1*' -o -iname '*filemask2*'\) ! -iname '*unwatned1*' ! -iname '*unwanted2*' ! -iname '*unwanted3*' ! -iname '*unwanted4*' ! -iname '*unwanted5*' ! -iname '*unwanted6*' ! -iname '*.xls*'
は私を与える:
find: invalid expression; you have used a binary operator '-o' with nothing before it.
find dir/ other_dir/ parent/child/dir/ parent/child/other_dir/ parent/other_dir/ ! -iname '*unwatned1*' ! -iname '*unwanted2*' ! -iname '*unwanted3*' ! -iname '*unwanted4*' ! -iname '*unwanted5*' ! -iname '*unwanted6*' ! -iname '*.xls*' \(-iname '*filemask1*' -o -iname '*filemask2*'\)
は私に
find: paths must precede expression: (-iname
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
を与えている間、私はこれを解釈取得する方法について何かが足りないのですか?これを簡略化して冗長ではない方法がありますか?私は、より良いファイル名を持つことで多くの問題が緩和されることを認識していますが、私はそれをコントロールできません:/
誰かが含まれるディレクトリの複数のパターンを削除する方法があれば