「ファイルがすでに存在しているため」「cp -f」が失敗しました。

「ファイルがすでに存在しているため」「cp -f」が失敗しました。

インストール後、スクリプトは実行中ですが、cp -f ./foo/a.json ./node_modules/bar/a.jsonファイルがすでに存在するというエラーが原因で失敗します(ファイルは存在しますが、私のバージョンで上書きしようとします)。

ファイルが存在しても、そのフラグのポイントは-f強制上書きを保証するものではありませんか?

可能なエイリアスをオーバーライドしようとしましたが、結果は同じでしたcp\cpこれは実行中のdockerビルド実行内で発生しnpm install、npm postinstallスクリプトが起動します。

以下は、要求されたDockerビルド出力の例です。

#10 82.12 npm WARN lifecycle [email protected]~postinstall: cannot run in wd [email protected] node -e "try{require('./postinstall')}catch(e){}" (wd=/node_modules/core-js)
#10 82.22 
#10 82.22 > [email protected] postinstall /usr/local/lib/node_modules/xxx-cli
#10 82.22 > command cp -f ./foo/a.json ./node_modules/xxx-library/assets/a.json
#10 82.22 
#10 82.31 cp: can't create './node_modules/xxx-library/assets/a.json': File exists

助けてくれてありがとう!

ベストアンサー1

-fいいえ、それは目的ではありません。cpGNU coreutils'cp基本書くコンテンツ既存の宛先ファイル。 (を使用して明示的に無効にする必要があります-n。)

ターゲットファイルが存在するが何らかの理由で開くことができない場合は、ファイルを変更して削除し、新しいファイルを作成してファイル-fを元のデータで埋めます。これは解決策でもなく、現在の問題でもないようです。

したいかもしれません非常にエラーメッセージの内容をそのまま記録します。

とにかくcat ./foo/a.json > ./node_modules/bar/a.json効果がありますか?cp ./foo/a.json ./node_modules/bar/a.jsonターゲットの内容をソースで上書きするという点では、実際にあなたのものと同じです。

おすすめ記事