そのファイルが宛先にすでに存在するかどうかに関係なく、特定のファイルをある場所にコピーしたい。シェルスクリプトを使用してコピーしようとしていますが、ファイルがコピーされません。次のコマンドを使用しています
/bin/cp -rf /source/file /destination
しかし、それはうまくいきません。
この質問についてはすでに説明しましたが、次のような小さなスクリプトを書くことができます。
#!/bin/bash
if [ ! -d "$2" ]; then
mkdir -p "$2"
fi
cp -R "$1" "$2"
問題は、デフォルトでシステムに作成されたcpコマンドのエイリアスが原因である可能性があります(「エイリアス」と入力すると、エイリアスが表示されます)。たとえば、私のシステムにはデフォルトで次のalisがあります:エイリアスcp = 'cp -i'、ここで-iは-fオプションをオーバーライドします。つまり、cpは常に上書きの確認を求めます。
そのような場合に必要なのは(エイリアスがなくても実際に機能します)、その確認に「yes」をフィードすることです。これを行うには、cpコマンドを次のように変更するだけです。
はい| cp/source/file/destination
使用する
cp -fr /source/file /destination
これはおそらく問題を解決するはずです。
/ bin/cp -rf src dstまたは/ usr/bin/env cp -rf