Souvent, lorsque je modifie un fichier système en premier, je crée une copie de sauvegarde. Par exemple:
Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Existe-t-il un simple "raccourci" tel que:
Sudo cp /etc/ssh/sshd_config %s.bak
?
Vous pouvez utiliser l'expansion de corset comme ceci:
cp example_file{,.bak}
Vous pouvez créer un petit fichier shellscript bupper
:
J'ai un répertoire ~/bin
, où je garde ces fichiers d'aide.
#!/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
Le rendre exécutable,
chmod ugo+x bupper
Dans ~/bin
, ce sera dans PATH et vous pourrez l'exécuter comme n'importe quel programme exécutable n'importe où (où vous avez des autorisations d'écriture).
Exemple:
$ 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'
Certains éditeurs ont la possibilité de créer une copie de sauvegarde du fichier avant de sauvegarder une nouvelle version. Cette sauvegarde a souvent un tilde comme dernier caractère (tilde est l'extension, mais il n'y a pas de point avant).
Gedit, l'éditeur standard d'Ubuntu en fait partie.
Après avoir configuré gedit
pour enregistrer une telle copie de sauvegarde:
gedit hello.txt
Et vérifier après
$ ls hello.txt*
hello.txt hello.txt~ hello.txt.bak
Maintenant hello.txt~
a été ajouté à hello.txt
et à la sauvegarde créée par bupper
.
Ceci fonctionne aussi avec nano
, avec l'option -B
nano -B hello.txt
vous pouvez donc le faire avec un éditeur de ligne de commande pour les tâches 'Sudo' :-)