Não funcionaria.
Um link físico não preserva o conteúdo dos arquivos, apenas o ponteiro para esses conteúdos. Portanto, no caso de arquivos, as modificações de arquivos não são preservadas e, para os diretórios, isso significa que as alterações no conteúdo dos diretórios também não serão preservadas. Como (abaixo) cada arquivo é excluído individualmente. Mesmo se você pudesse linkar um diretório, ele ficaria vazio depois disso.
Hardlinks são geralmente proibidos para diretórios, em primeiro lugar. Os links simbólicos para diretórios já são problemáticos, existem hacks para evitar que um loop infinito de links simbólicos seja seguido até o fundo. Pelo menos para links simbólicos eles são facilmente identificados e simplesmente ignorados, a maioria dos programas que percorrem as árvores de diretórios (como find
) os ignoram completamente (nunca os seguem) por padrão.
Os diretórios com links rígidos seriam mais difíceis de detectar e rastrear, já que você não sabe qual deles você já visitou, você deve verificar se há um dos já visitados. A maioria dos programas não faz isso, pois eles simplesmente esperam que, por convenção, isso não exista em primeiro lugar.
Se você ainda precisar vincular diretórios por algum motivo, há algo que faz algo muito semelhante, e é mount --bind olddir newdir
. Montagens de ligação não têm algumas das armadilhas, e. não há estruturas infinitas quando o monte está preso a um lugar e não se repete. Em troca, tem outros (outras sub-montagens também não aparecem nesta árvore). Que é um ótimo recurso se você estiver procurando por arquivos ocultos por outras montagens.
Não há preservação de conteúdo em nenhum dos casos, pois você sempre precisa de uma cópia real.