GNU cp(1)
має варіант резервного копіювання:
cp --backup SOURCE [SOURCE...] [DESTINATION]
Це має наступні ефекти, якими можна керувати за допомогою інших варіантів, як описано в розділі ручної сторінки з cp(1)
:
--backup[=CONTROL]
make a backup of each existing destination file
-b like --backup but does not accept an argument
-S, --suffix=SUFFIX
override the usual backup suffix
Суфікс резервного копіювання є ~
, якщо не встановлено значення --suffix
або SIMPLE_BACKUP_SUFFIX
. Можна вибрати метод контролю версій
через --backup
або через VERSION_CONTROL
навколишнє середовище
змінної. Ось значення:
none
, off
: ніколи не створюйте резервні копії (навіть якщо --backup
дано)
numbered
, t
: зробити пронумеровані резервні копії
existing
, nil
: пронумеровані, якщо існують пронумеровані резервні копії, просто інакше
simple
, never
: завжди робити прості резервні копії
Приклад
cp --backup=existing --suffix=.orig ~/Music/* ~/Videos
Це скопіює всі файли ~/Music
до ~/Videos
. Якщо файл з тим же ім'ям існує на місці призначення, його перейменовують шляхом додавання .orig
на ім'я резервної копії. Якщо файл з такою ж назвою, що й резервна копія, існує, резервна копія замість цього перейменовується .1
і, якщо це також існує, .2
і так далі. Тільки тоді вихідний файл буде скопійовано до місця призначення.
Якщо потрібно скопіювати файли в підкаталоги, рекурсивно використовуйте -R
:
cp -R --backup=existing --suffix=.orig ~/Music ~/Videos