Fév 202014
 

On m’a demandé comment copier sans écraser la destination si elle existe.

l’environnement est restreint, pas de rsync et doit tenir dans une ligne.

pas le temps de tester si le fichier existe, ce doit être rapide.

la solution est facile:

# yes |sed 's/y/n/' | cp -i source destination 

pour les tests :

┌(argon)─(✓)─(01:25 jeu. févr. 20)─(not a Git repository)
└─(/tmp)─(6 files, 64Kb)─> echo 'toto' > toto

┌(argon)─(✓)─(01:25 jeu. févr. 20)─(not a Git repository)
└─(/tmp)─(7 files, 68Kb)─> echo 'tata' > tata

┌(argon)─(✓)─(01:26 jeu. févr. 20)─(not a Git repository)
└─(/tmp)─(8 files, 72Kb)─> yes |sed 's/y/n/' | cp -i toto tata
cp : voulez-vous écraser « tata » ?
┌(argon)─(✓)─(01:26 jeu. févr. 20)─(not a Git repository)
└─(/tmp)─(8 files, 72Kb)─> cat tata
tata

 

ça fonctionne !

 Publié par à 14 h 32 min

 Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)