-exec [重複]でパラメータが見つかりません。

-exec [重複]でパラメータが見つかりません。

この問題があります。ファイルにディレクトリ名なしで映画のリストを出力しようとしましたが、エラーがあります。パラメータが見つかりません。-exeс以下のコードは次のとおりです。

$ find . -name "*.avi" -o -name "*.mkv" -exec basename \{} \ > ~/Bash/test/rm/films.txt

ベストアンサー1

コマンドには2つのタイプミスがあります。

  1. \{}しなければならない{}

  2. (バックスラッシュ+スペース)はまたはで\␣なければなりません。\;';'

-exec/predicate オプションは、find実行するコマンドが終了する場所を知る必要があります。最後の項目はこれについて説明します;(シェルで保護するには引用符が必要です)。

エスケープや引用は不要です{}

優先順位の問題もあるかもしれません。あなたは基本的に言う

condition OR condition AND run-this-command

これは不明です。と言うほうがいい

(condition OR condition) AND run-this-command

実行方法は次のとおりです。

find . -type f '(' -name '*.avi' -o -name '*.mkv' ')' \
    -exec basename {} ';' > ~/Bash/test/rm/films.txt

-type f一般的なファイルだけが考慮されるように、これも追加しました。

おすすめ記事