Quando você renomeia um arquivo, não altera o arquivo, altera seu diretório pai. Um nome de arquivo é uma entrada em um diretório. Pense em diretórios de telefone, para alterar o nome associado a um número de telefone em um diretório, você precisa modificar o diretório, não a linha telefônica. O nome está associado à linha telefônica somente nesse diretório. Esse número de telefone pode estar em outro diretório com um nome diferente (links físicos).
Há uma ressalva para renomear diretórios, pois os diretórios contêm uma referência a seus pais (sua entrada ..
). Para poder mover um diretório, não é suficiente ter permissão de gravação para o pai antigo (para remover a entrada) e o novo pai (para adicionar uma nova entrada), você também precisa ter permissão de gravação no próprio diretório para atualizar a entrada ..
(se o pai antigo e o novo forem diferentes).