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