• ベストアンサー

find -exec内のshに変数を渡す方法

次のコマンドを実行しても、find -exec内の${from_dir}の内容が渡らず、/*.csvと解釈されます。 どのようにすればよろしいのでしょうか。 from_dir=/home/ksasaki find /home/s???????/ -maxdepth 0 -exec sh -c 'cp ${from_dir}/*.csv {}310/; ' \; 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kumoz
  • ベストアンサー率64% (120/185)
回答No.2

新たに起動したシェルから変数が見えないためだと思います。 (1)見えない $ foo=string $ sh -c 'echo $foo' (2)見える $ export foo=string $ sh -c 'echo $foo' (3)現在のシェルが展開 $ foo=string $ sh -c "echo $foo"

inshin
質問者

お礼

こんな違いがあったんですね。 大変勉強になりました。 ありがとうございました!

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

シングルクォートの意味は理解できていますか?

inshin
質問者

補足

-cオプションでシングルクオートの内容を展開しているんですよね。