Há espaço para aprimoramentos em seu script, por exemplo, adicionando uma opção -p
ao comando cp
para que as permissões e registros de data e hora sejam preservados na operação de não-vínculo e você possa adicionar alguns erros para que o temp O arquivo é excluído em caso de erro, mas a idéia básica de sua solução é a única que funcionará. Para desvincular um arquivo, você deve copiá-lo e, em seguida, mover a cópia de volta sobre o nome original. Não existe uma solução "menos bruta", e esta solução tem condições de corrida, caso outro processo esteja acessando o arquivo ao mesmo tempo.