web-dev-qa-db-ja.com

「find -exec <script> {} \;を実行する方法

フォルダーのファイルのプロパティを変更するスクリプトがあります。

以下はツリーの例です。

dir 1
    --file 1
    --file 2
    --file 3
dir 2
    --file 1
    --file 2
dir 3
    --file 1
    --file 2
    --file 3

すべてのディレクトリに対してシェルスクリプト(script.sh)を実行したいターミナルでこのコマンドを実行しています

find . -type d -exec ./script.sh {}\;

実行されず、エラーが発生します:

find: missing argument to `-exec'

ここで何が欠けていますか?

6
Ashwin kumar

{};の間のスペースがありません:

find . -type d -exec ./script.sh {} \;
14
terdon

試す

find . -type d -exec /path/to/script.sh '{}' \;

または

find . -type d -exec /path/to/script.sh \{\} \;

または(「}」はその場合明確では特別ではないため、リテラルなので、うまくいくと思います):

find . -type d -exec /path/to/script.sh \{} \;
0
Olivier Dulac