1

シェルライナーなどで何かをコピーするのに助けが必要です..

cp QA/Release/apps/offline/config/logging.yml     Production/Release/apps/offline/config/logging.yml
cp QA/Release/config/nc_databases_dev.yml         Production/Release/config/nc_databases_dev.yml
cp QA/Release/config/nc_databases_live.yml        Production/Release/config/nc_databases_live.yml
cp QA/Release/config/nc_databases_live_dev.yml    Production/Release/config/nc_databases_live_dev.yml
cp QA/Release/config/nc_databases_test.yml        Production/Release/config/nc_databases_test.yml
cp QA/Release/config/nc_databases_va.yml          Production/Release/config/nc_databases_va.yml

I am copy QA/files.. to Production/files.. が表示された場合、最初の 2 つのディレクトリだけが QA を Production に変更し、残りのパスは同じままです。

私はここまで取得し、ファイルにファイル名を書き込んで読み取り、コピーすることができました

for i in `cat file ` ; do  cp  $i to ?????  ; done

各ソース行を読み取るときに $i を Production にコピーしますが、オンザフライでコピーするため、QA/ を削除するだけで済みます。

ありがとう

4

3 に答える 3

1

rsyncを見ましたか?このような何かが物事を行う必要があります:

rsync -a --include '*.yml' QA/Release Production/Release/

編集: rsync 行をテストして修正します。

このコマンドは、パターン '*.yml' を尊重する QA/Release ディレクトリの下にあるすべてのものを製品/リリース ツリーにコピーします。AQA/Release/x/y/z/file.ymlにコピーされますProduction/Release/x/y/z/file.yml

于 2012-05-21T12:24:07.807 に答える
0
while read -r name
do
    cp "$name" "PRODUCTION/${name#QA/}"
done < file

ワンライナーとして:

while read -r name; do cp "$name" "PRODUCTION/${name#QA/}"; done < file
于 2012-05-21T13:43:00.660 に答える
0

これは、ディレクトリをコピーして名前を変更するのと同じではありませんか?

cp -r QA Production
于 2012-05-21T12:31:42.617 に答える