find -execが魚で動作しない

find -execが魚で動作しない

Fishをシェルとして使用している間は、次のようにして現在のディレクトリにある複数のCソースファイルに対する権限を設定しようとしています。

find . -type f -name "*.c" -exec chmod 644 {} +;

エラーが発生しました。

検索: '-exec'引数がありません

または

find . -type f -name "*.c" -exec chmod 644 {} \;

エラーが発生しました。

chmod: ''にアクセスできません:そのファイルまたはディレクトリはありません

何が問題なの?

ベストアンサー1

fish仕事が起こる{}引用が必要な数少ないシェルの1つ

したがって、そのシェルを使用するには、次のものが必要です。

find . -type f -name '*.c' -exec chmod 644 '{}' +

引用符がない場合は空の{}パラメータに展開されるため、コマンドは次のようになります。

find . -type f -name '*.c' -exec chmod 644 '' +

そして、find行方不明について文句を言います{}(またはそれに;従うときだけ+終端者として認識されます)。-exec{}

他のほとんどのシェルには{}

おすすめ記事