-exec evalを使用して$ 0 [重複]を見つけます。

-exec evalを使用して$ 0 [重複]を見つけます。

以下のコマンドでは、コマンドの代わりに$0見つかったファイルを評価する理由がわかります。findecho

$ find . -type f -perm -u=x -exec bash -c '
  /bin/echo $0 is the name of the file' {} \;

$0二重引用符、等号を使用し、一重引用符を使用すると拡張が遅れることがわかりますが、呼び出されるコマンド(通常)なので-bash拡張されないのはなぜですか?/bin/echo$0

答え1

bashマニュアルページから:

 -c    If the -c option is present, then commands are read from the first 
       non-option argument command_string.  If there are arguments after 
       the command_string,  they are assigned to the positional 
       parameters, starting with $0.

bashファイル名は中括弧を使用して引数として提供されるため、{}に割り当てられます$0$0その後、拡張は bash によって行われます。以前電話してみてください/bin/echo

関連情報