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 mvcommande 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?