На этот вопрос уже есть ответ:
Часто, когда я сначала редактирую какой-либо системный файл, я создаю резервную копию. Например:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Есть ли какой-нибудь простой «ярлык», например:
sudo cp /etc/ssh/sshd_config %s.bak
?
Обходной путь, который я нашел, - использовать sed
следующим образом:
sudo sed '' /etc/ssh/sshd_config -i.bak
Вы могли использовать расширение фигурной скобки как это:
cp example_file{,.bak}
Можно создать маленький файл сценария оболочки bupper
:
У меня есть каталог ~/bin
, где я сохраняю такие справочные файлы.
#!/bin/bash
if [ $# -eq 1 ]
then
cp -pvi "$1" "${1}.bak"
else
echo "Info: $0 copies to a backup file"
echo "Usage: $0 <file to be backed up with .bak extension>"
fi
Сделайте это исполняемым файлом,
chmod ugo+x bupper
Когда в ~/bin
, это будет в ПУТИ, и можно выполнить его как любая исполняемая программа куда угодно (где у Вас есть полномочия записи).
Пример:
$ bupper hello.txt
'hello.txt' -> 'hello.txt.bak'
$ bupper hello.txt
cp: overwrite 'hello.txt.bak'? n
$ bupper hello.txt
cp: overwrite 'hello.txt.bak'? y
'hello.txt' -> 'hello.txt.bak'
У некоторых редакторов есть опция создать резервную копию файла перед сохранением новой версии. Это резервное копирование часто имеет тильду как последний знак (тильда является расширением, но нет никакой точки перед ним).
Gedit, типичный редактор в Ubuntu является одним из них.
После установки gedit
сохранить такую резервную копию:
gedit hello.txt
И проверьте впоследствии
$ ls hello.txt*
hello.txt hello.txt~ hello.txt.bak
Теперь hello.txt~
был добавлен к hello.txt
и резервное копирование, созданное bupper
.
Это работает с nano
также, с опцией -B
nano -B hello.txt
таким образом, можно сделать это с редактором командной строки для 'sudo' задач :-)