As respostas ficam muito claras, uma vez que você entende que, em todos os sistemas de arquivos compatíveis com UNIX, um arquivo é não algo que vive dentro de um diretório, mas algo completamente independente. Um diretório nada mais é que uma coleção de links para arquivos (isto é, porque o syscall para remover um arquivo de um diretório é unlink()
). Quando não há links para um arquivo (o refcount
é zero), o arquivo em si morre.
Isso tem algumas implicações:
- Um e o mesmo arquivo pode perfeitamente existir em mais de um diretório em um sistema de arquivos
- Sua pergunta : Excluir um arquivo (ou um subdiretório) de um diretório (removendo um link para ele) ou criar um link para ele não é uma operação no arquivo, mas no diretório. Isto implica, que as permissões do arquivo são irrelevantes, são as permissões do diretório, que contam.