Que ce soit dans un terminal ou dans un script Shell, on utilise tous
quotidiennement les commandes cp
et mv
.
Mais connaissons tous vraiment les options de ces commandes ? Pas si sûr ... Ces options sont précieuses dans un script Shell pour comprendre le flow d'exécution ou pour débugger celui-ci.
Première option intéressante, l'option -v
ou
--verbose
:
user@machine:~ cp --verbose cleanup.log /tmp/ « cleanup.log » -> « /tmp/cleanup.log »
qui permet d'afficher ce qui est effectué. Cette option existe aussi sur la
commande mv
.
Deuxième option, l'option --u
ou --update
permet
de ne copier ou déplacer le fichier que si celui-ci est plus récent que la
cible:
user@machine:~$ cp --verbose --update cleanup.log /tmp/ user@machine:~$ touch cleanup.log user@machine:~$ cp --verbose --update cleanup.log /tmp/ « cleanup.log » -> « /tmp/cleanup.log »
La première commande cp
n'a rien fait puisque les fichiers
étaient identiques.
cp
et mv
ont aussi une option qui permet
d'archiver les fichiers cibles déjà existant avant de faire la copie ou le
déplacement:
user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/ « cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~1~ ») user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/ « cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~2~ »)
Cela permet de garder les versions précédentes si l'on a besoin de revenir en arrière.
L'option --backup
peut prendre les valeurs suivantes:
- none
- numbered
- existing
- simple
Autre option intéressante pour le mode interactif, l'option
--interactive
ou -i
, qui en cas de fichier existant
demande si on doit l'écraser:
user@machine:~$ cp --verbose --interactive cleanup.log /tmp/ cp : voulez-vous écraser « /tmp/cleanup.log » ? oui « cleanup.log » -> « /tmp/cleanup.log »
Si l'on souhaite conserver les fichiers existants:
user@machine:~$ cp --verbose --no-clobber cleanup.log /tmp/
La copie n'a pas été effectuée.
Enfin pour finir citons le flag -r
, -R
ou
--recursive
qui permet de copier récursivement les
répertoires.