Mam polecenie, które akceptuje plik jako argument, modyfikuje plik, a następnie zapisuje go do nazwy pliku określonej w drugim argumencie. Zadzwonię do tego programu modifyfile
.
Chciałem, żeby działał „na miejscu”, więc napisałem skrypt powłoki (bash), który modyfikuje go do pliku tymczasowego, a następnie przenosi go z powrotem:
TMP=`mktemp`
modifyfile "$original" "$TMP"
mv -v "$TMP" "$original"
Ma to niefortunny efekt uboczny niszczenia uprawnień do tego pliku. Plik zostanie ponownie utworzony z domyślnymi uprawnieniami.
Czy istnieje sposób na mv
polecenie polecenia zastąpienia miejsca docelowego bez zmiany jego uprawnień? Czy alternatywnie istnieje sposób na uratowanie użytkownika, grupy i uprawnień od oryginału i przywrócenie ich?