如何在覆盖之前备份我正在复制的所有文件?

AGa*_*yer 3 backup cp file-copy

我有一个这样的文件夹:

./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
Run Code Online (Sandbox Code Playgroud)

new-content文件夹包含我更新的持续更新内容。当我想更新我的内容时,我将复制它们以覆盖现有的内容,如下所示:

\cp -rf new-content/* ./

但是,我如何设置将要被覆盖的文件的备份?

任何简单的方法来实现这一目标?

Fel*_*xJN 7

来自man cp(GNU 版本,可在 Linux 和 Cygwin 上找到)

--backup[=控制]

备份每个现有的目标文件

-b 类似于 --backup 但不接受参数

例子

touch 1 2
cp -bv 2 1
‘2’ -> ‘1’ (backup: ‘1~’)
Run Code Online (Sandbox Code Playgroud)

请注意,这不会检查现有的备份文件,即如果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~’)
Run Code Online (Sandbox Code Playgroud)