Os programas devem seguir links simbólicos?

Os programas devem seguir links simbólicos?

Um programa que percorre recursivamente uma árvore de diretórios precisa descobrir o que fazer com links simbólicos (e/ou pontos de junção no Windows), para evitar entrar em um loop infinito quando um link simbólico aponta para um diretório pai. As duas opções óbvias são:

  1. Ignore os links simbólicos completamente.

  2. Vá em frente e siga-os, mas acompanhe todos os diretórios visitados e pule sempre que estiver prestes a atingir um loop infinito.

Qual é a escolha mais comum/esperada/preferida?

Responder1

Se você está apenas navegando, siga.

Mas você especificou que não deseja loops infinitos...

para evitar entrar em um loop infinito quando um link simbólico aponta para um diretório pai

Se você estiver pesquisando recursivamente em amplitude, siga. De maneira profunda, pule.

Se você estiver contando tamanhos de arquivo, pule.

Manter o controle costuma ser uma otimização, em vez de uma implementação. Claro, é melhor você ter isso.

informação relacionada