2017-04-13 57 views
0

我正在運行此命令find alldeploy.php在我的整個項目中的文件,並將它們的副本,並將它們放在同一目錄中,因爲它們被發現,與名deploy_bkp.phpBash:找到並複製exec命令不遞歸

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

但它不是遞歸工作。它只能用於頂層目錄中的文件。

任何人都可以幫助我。謝謝你

+0

而不是直接調用'cp'{}'...',你會希望創建一個小幫助腳本(例如'cp「$ 1」「$ 2」'在助手中,稱之爲'mycp'),然後你可以使用'find。 -type f -name「deploy.php」-exec mycp'{}'-printf「%h /debp_bkp.php」;' –

回答

1

使用-execdir而不是-exec。使用-exec時,每個文件的當前目錄不會更改,因此備份文件將在您的起始目錄中創建,而不管在哪裏找到deploy.php-execdir事先告訴find到chdir到正確的目錄,所以你的cp將按預期運行。

+0

感謝您的信息。 –