У меня есть команда, которая принимает файл в качестве аргумента, изменяет файл, а затем записывает его в имя файла, указанное во втором аргументе. Я позвоню этой программе modifyfile
.
Я хотел, чтобы он работал «на месте», поэтому я написал сценарий оболочки (bash), который изменяет его во временный файл, а затем перемещает обратно:
TMP=`mktemp`
modifyfile "$original" "$TMP"
mv -v "$TMP" "$original"
У этого есть неприятный побочный эффект разрушения разрешений на этот файл. Файл воссоздается с разрешениями по умолчанию.
Есть ли способ сказать mv
команде перезаписать место назначения без изменения его разрешений? Или, альтернативно, есть способ сохранить пользователя, группу и разрешения из оригинала и восстановить их?