Ich habe einen Befehl, der eine Datei als Argument akzeptiert, die Datei ändert und sie dann in den im zweiten Argument angegebenen Dateinamen schreibt. Ich werde das Programm aufrufen modifyfile
.
Ich wollte, dass es "an Ort und Stelle" funktioniert, also schrieb ich ein Shell-Skript (Bash), das es in eine temporäre Datei ändert und es dann zurück verschiebt:
TMP=`mktemp`
modifyfile "$original" "$TMP"
mv -v "$TMP" "$original"
Dies hat den unglücklichen Nebeneffekt, dass die Berechtigungen für diese Datei zerstört werden. Die Datei wird mit Standardberechtigungen neu erstellt.
Gibt es eine Möglichkeit, den mv
Befehl anzuweisen, das Ziel zu überschreiben, ohne seine Berechtigungen zu ändern? Oder gibt es alternativ eine Möglichkeit, Benutzer, Gruppen und Berechtigungen aus dem Original zu speichern und wiederherzustellen?