検索操作で-execオプションを使用してください。

検索操作で-execオプションを使用してください。

findjpg画像以外のファイルを含むディレクトリのリストを印刷しようとしていますが、-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 {} \;

あなたの試みとはいくつかの注目すべき違いがあります。

  1. {}の間にスペースが必要です。\;
  2. ;シェルメタ文字なので、エスケープする必要があります。
  3. @muruが彼の答えで指摘したように、-iname正規表現ではなくglobを使用してください。

おすすめ記事