GNU/Linux >> Linux の 問題 >  >> Linux

Find To Workで-execオプションを取得しますか?

findを作成しようとしています jpg画像以外のファイルを含むディレクトリのリストを出力しますが、 -execを使用していると思います オプションが壊れています。私の環境はCygwinBashです。

$ 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'

承認された回答:

-exec ;で終了する必要があります または+; + に対して、コマンドは見つかったファイル名ごとに1回実行されます。 すべてのファイル名に対してコマンドが1回実行されます。

実例は次のとおりです:

find ! -iname "*.JPG" -exec dirname {} ;

あなたの試みとのいくつかの注目すべき違い:

  1. {}の間にはスペースが必要です および;
  2. ; シェルのメタ文字であるため、エスケープする必要があります。
  3. @muruが彼の答えで指摘したように、 -iname 正規表現ではなく、グロブを取ります

Linux
  1. Linuxで-execシェル関数を見つけますか?

  2. adb:adb シェルから PID を見つける

  3. Linux で「find」の結果を mv にパイプする方法

  1. スティッキービットはどのように機能しますか?

  2. Tmuxで256色を機能させるには?

  3. 「find -mtime」コマンドの説明

  1. Linux – Wodim –デバイスが機能しないときにCd / dvdドライブの機能を取得しますか?

  2. -execが失敗した場合の検索から抜け出しますか?

  3. -exec コマンド {} + vs | を検索します。 xargs