Um arquivo pode ser excluído enquanto está aberto por um processo. Quando isso acontece, a entrada de diretório é excluída, mas o arquivo em si (o inode e o conteúdo) permanece para trás; o arquivo só é realmente excluído quando não tem mais links e não é aberto por nenhum processo.
O NFS é um protocolo sem estado: as operações podem ser realizadas independentemente das operações anteriores. É possível até que o servidor seja reinicializado e, assim que ele voltar a ficar on-line, os clientes continuarão acessando os arquivos como antes. Para que isso funcione, os arquivos precisam ser designados por seus nomes, não por um manipulado obtido pela abertura do arquivo (que o servidor esqueceria quando for reinicializado).
Coloque os dois juntos: o que acontece quando um arquivo é aberto por um cliente e excluído? O arquivo precisa continuar tendo nome, para que o cliente que o tenha aberto ainda possa acessá-lo. Mas quando um arquivo é deletado, espera-se que mais nenhum arquivo com esse nome apareça depois. Assim, os servidores do NFS transformam a exclusão de um arquivo aberto em uma renomeação: o arquivo é renomeado para .nfs…
( .nfs
seguido por uma sequência de letras e dígitos).
Você não pode excluir esses arquivos (se tentar, tudo o que acontece é que um novo .nfs…
aparece com um sufixo diferente). Eles acabarão por desaparecer quando o cliente que tiver o arquivo aberto o fechar. (Se o cliente desaparecer antes de fechar o arquivo, pode demorar um pouco até que o servidor perceba).