Есть ли способ создать резервную копию файла, не вводя его имя дважды? [дубликат]

Часто, когда я сначала редактирую какой-либо системный файл, я создаю резервную копию. Например:

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
11
задан 26 June 2019 в 07:26

2 ответа

Вы могли использовать расширение фигурной скобки как это:

cp example_file{,.bak}
17
ответ дан 23 November 2019 в 03:57

1. Что Вы попросили

Можно создать маленький файл сценария оболочки 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'

2. Альтернатива - позволила редактору сделать задание автоматически

У некоторых редакторов есть опция создать резервную копию файла перед сохранением новой версии. Это резервное копирование часто имеет тильду как последний знак (тильда является расширением, но нет никакой точки перед ним).

Gedit, типичный редактор в Ubuntu является одним из них.

enter image description here

После установки 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' задач :-)

3
ответ дан 23 November 2019 в 03:57

Другие вопросы по тегам:

Похожие вопросы: