2017-04-13 10 views
0

このコマンドを実行してdeploy.phpという名前のファイルを作成し、それらのコピーを作成して、名前deploy_bkp.phpBash:execコマンドを再帰的に検索してコピーしない

find . -type f -name "deploy.php" -exec cp {} deploy_bkp.php \; 

しかし、その再帰的に動作していないと。トップディレクトリのファイルに対してのみ動作します。

誰でも助けてくれますか?ありがとうございます

+0

直接 'cp '{}' ...'を呼び出すのではなく、小さなヘルパースクリプト(例えば、 'cp" $ 1 "" $ 2 "'をヘルパーに作成し、 'mycp'と呼ぶ) 'findを使うことができます。 "%h/deploy_bkp.php"; ' –

答えて

1

-execの代わりに-execdirを使用してください。 -execでは、現在のディレクトリはファイルごとに変更されないため、deploy.phpが見つかった場合でも、開始ディレクトリにバックアップファイルが作成されます。 -execdirは、正しいディレクトリにあらかじめchdirにfindを伝えるので、cpは期待どおりに動作します。

+0

情報をありがとう。それは働いている –

関連する問題