J'ai une commande qui accepte un fichier comme argument, modifie le fichier, puis l'écrit dans le nom de fichier spécifié dans le deuxième argument. J'appellerai ce programme modifyfile
.
Je voulais qu'il fonctionne "sur place", j'ai donc écrit un script shell (bash) qui le modifie en un fichier temporaire puis le recule:
TMP=`mktemp`
modifyfile "$original" "$TMP"
mv -v "$TMP" "$original"
Cela a pour effet secondaire malheureux de détruire les autorisations sur ce fichier. Le fichier est recréé avec les autorisations par défaut.
Existe-t-il un moyen de dire à la mv
commande d'écraser la destination sans modifier ses autorisations? Ou existe-t-il un moyen de sauvegarder l'utilisateur, le groupe et les autorisations de l'original et de les restaurer?