web-dev-qa-db-ja.com

シェルスクリプトでファイルをコピーして上書きする

そのファイルが宛先にすでに存在するかどうかに関係なく、特定のファイルをある場所にコピーしたい。シェルスクリプトを使用してコピーしようとしていますが、ファイルがコピーされません。次のコマンドを使用しています

/bin/cp -rf /source/file /destination

しかし、それはうまくいきません。

11
AlwaysALearner

この質問についてはすでに説明しましたが、次のような小さなスクリプトを書くことができます。

#!/bin/bash
if [ ! -d "$2" ]; then
  mkdir -p "$2"
fi
cp -R "$1" "$2"
12
Luca Davanzo

問題は、デフォルトでシステムに作成されたcpコマンドのエイリアスが原因である可能性があります(「エイリアス」と入力すると、エイリアスが表示されます)。たとえば、私のシステムにはデフォルトで次のalisがあります:エイリアスcp = 'cp -i'、ここで-iは-fオプションをオーバーライドします。つまり、cpは常に上書きの確認を求めます。

そのような場合に必要なのは(エイリアスがなくても実際に機能します)、その確認に「yes」をフィードすることです。これを行うには、cpコマンドを次のように変更するだけです。

はい| cp/source/file/destination

13
user309122

使用する

cp -fr /source/file /destination

これはおそらく問題を解決するはずです。

11
Maulzey

/ bin/cp -rf src dstまたは/ usr/bin/env cp -rf

1
denesuk