cp
ターゲットファイルがすでに存在する場合(LinuxのGNU coreutilsで)ゼロ以外の値を返す方法はありますか?
それとも、この機能を提供する一般的に使用される他の小さなユーティリティはありますか?
これは、シェルスクリプトで誤って何も失うことなく、ユーザーの対話なしでファイルを自動的にコピーするのに役立ちます。コピーをオリジナルと比較すると同様の結果が得られますが、より簡単な解決策があることを願っています。
ベストアンサー1
一部のcp
実装(GNUを含む)には、ファイルが存在する場合にファイルを破壊しないcp
非標準スイッチがあります。-n
しかし、GNUはcp
とにかく戻ります。0
シェルスクリプトでは、ifステートメントを使用してファイルの内容をコピーする前にファイルが存在するかどうかをテストできます。
if [ -e /path/to/file ]
then
exit 1
else
cp file /path/to/file
fi
または、機能が必要な場合は、次のように使用できます。
function cpa(){
if [ -e "$2" ]
then
exit 1
else
/bin/cp "$1" "$2"
fi
}