У мене є команда, яка приймає файл як аргумент, модифікує файл, а потім записує його до імені файлу, зазначеного у другому аргументі. Я назву цю програму modifyfile
.
Я хотів, щоб він працював "на місці", тому я написав скрипт оболонки (bash), який модифікує його до тимчасового файлу, а потім переміщує його назад:
TMP=`mktemp`
modifyfile "$original" "$TMP"
mv -v "$TMP" "$original"
Це призводить до прикрого побічного ефекту: знищення дозволів на цей файл. Файл буде створений заново за допомогою стандартних дозволів.
Чи є спосіб сказати mv
команді перезаписати призначення, не змінюючи його дозволів? Або по черзі є спосіб зберегти користувача, групу та права доступу від оригіналу та відновити їх?