cp для копирования файлов. Однако немногие знают о её встроенной поддержке версионности.Эта функция может быть особенно полезна для системных администраторов и разработчиков, которым необходимо поддерживать несколько версий конфигурационных файлов или исходного кода.
Понимание версионности в
cpКоманда
cp предлагает два ключевых параметра для поддержки версионности:1.
--backup: создаёт резервную копию файла назначения перед его перезаписью.2.
--suffix: задаёт пользовательский суффикс для резервной копии.Простое резервное копирование
Чтобы создать простую резервную копию:
$ cp --backup=numbered /путь/к/исходному/файлу /путь/к/папке/назначения/
Эта команда создаёт резервную копию с суффиксом по умолчанию (
~) и увеличивающимся номером (например, файл.~1~, файл.~2~ и т.д.).Резервная копия с пользовательским суффиксом
Для более наглядных резервных копий:
$ cp --backup=numbered --suffix=.bak /путь/к/исходному/файлу /путь/к/папке/назначения/
Это создаёт резервные копии с суффиксом
.bak и увеличивающимся номером (например, файл.bak.1, файл.bak.2 и т.д.).Практический пример: резервное копирование конфигурации SSH
Предположим, вы часто обновляете файл конфигурации SSH (
/etc/ssh/sshd_config) для управления правилами доступа. Вот как можно вести версионированные резервные копии:1. Создание резервной копии с нумерацией:
$ cp --backup=numbered /etc/ssh/sshd_config /data/backup/
Это создаёт файлы вида
sshd_config.~1~, sshd_config.~2~ и т.д.2. Создание резервной копии с пользовательским суффиксом:
$ cp --backup=numbered --suffix=.bak /etc/ssh/sshd_config /data/backup/
Это создаёт файлы вида
sshd_config.bak.1, sshd_config.bak.2 и т.д.Преимущества
🔹Сохраняется история изменений файлов
🔹Предотвращается случайная перезапись важных данных
🔹Предлагается простая система версионности без необходимости использовать сложные системы контроля версий
👉 DevOps Portal
