コピーしているすべてのファイルを上書きする前にどのようにバックアップしますか?

コピーしているすべてのファイルを上書きする前にどのようにバックアップしますか?

次のフォルダがあります。

./folder-a/index.html
./folder-b/index.html
./folder-c/subdir/index.html
./new-content/folder-a/index.html
./new-content/folder-b/index.html
./new-content/folder-c/subdir/index.html

このnew-contentフォルダには、私が継続的に更新するコンテンツが含まれています。コンテンツを更新したい場合は、次のように既存のコンテンツにコピーします。

\cp -rf new-content/* ./

しかし、上書きされるファイルのバックアップをどのように設定しますか?

これを達成する簡単な方法はありますか?

ベストアンサー1

man cp(GNUバージョン、LinuxおよびCygwinにあります)

--バックアップ[=制御]

各既存のターゲットファイルのバックアップ

-b --backup と似ていますが、引数を受け入れません。

はい

touch 1 2
cp -bv 2 1
‘2’ -> ‘1’ (backup: ‘1~’)

これは、既存のバックアップファイルを確認しないことに注意してください。つまり、1~存在する場合は上書きされます。長いバージョンでは、これを防ぐことができます。例えば

cp -v --backup=numbered 2 1
‘2’ -> ‘1’ (backup: ‘1.~1~’)
cp -v --backup=numbered 2 1
‘2’ -> ‘1’ (backup: ‘1.~2~’)
cp -v --backup=numbered 2 1
‘2’ -> ‘1’ (backup: ‘1.~3~’)

おすすめ記事