find
jpg画像以外のファイルを含むディレクトリのリストを印刷しようとしていますが、-exec
そのオプションの使用は間違っているようです。私の環境はCygwin Bashです。
$ find ! -iname "*.JPG$" -exec dirname
find: missing argument to `-exec'
$ find ! -iname "*.JPG$" -exec dirname {}
find: missing argument to `-exec'
$ find ! -iname "*.JPG$" -exec dirname;
find: missing argument to `-exec'
$ find ! -iname "*.JPG$" -exec dirname ;
find: missing argument to `-exec'
$ find ! -iname "*.JPG$" -exec dirname {};
find: missing argument to `-exec'
ベストアンサー1
Aはaまたはaで終わらなければなりません-exec
。見つかった各ファイル名に対してコマンドは一度実行されますが、すべてのファイル名に対してコマンドは一度実行されます。;
+
;
+
以下は実際の例です。
find ! -iname "*.JPG" -exec dirname {} \;
あなたの試みとはいくつかの注目すべき違いがあります。
{}
の間にスペースが必要です。\;
;
シェルメタ文字なので、エスケープする必要があります。- @muruが彼の答えで指摘したように、
-iname
正規表現ではなくglobを使用してください。