Eu estava executando um script que iterava sobre todos os arquivos no meu sistema Linux e criava alguns metadados sobre eles, e isso gerou um erro ao atingir um link simbólico quebrado.
Sou novato no * nix, mas tenho a idéia principal por trás da vinculação de arquivos e como os links quebrados existem. Tanto quanto eu sei, eles são como o equivalente a lixo na rua. As coisas que um programa que estou removendo não eram inteligentes o suficiente para dizer que o gerenciador de pacotes existia e pertencia a ele, ou algo que foi deixado para trás em uma atualização. No começo, comecei a ajustar o script que estava executando para ignorá-los, e pensei: 'sempre poderíamos excluí-los enquanto estivermos aqui embaixo ...'
Estou executando o Ubuntu 14.04 (Trusty Tahr). Não vejo nenhum motivo para não fazê-lo, mas antes de prosseguir e executar isso no meu sistema de desenvolvimento, existe algum motivo para que isso possa realmente ser uma péssima idéia? Links simbólicos quebrados servem a algum propósito que eu não conheço?
Respostas:
Há muitas razões para links simbólicos quebrados:
Resolução: remova o link simbólico quebrado.
Resolução: encontre o destino pretendido e corrija o link.
Resolução: encontre o destino pretendido e corrija o link.
Resolução: nenhuma, o link não está quebrado em todos os lugares.
Resolução: nenhuma, o link não está quebrado para todos.
Resolução: nenhuma. Nesse caso, remover o link seria prejudicial.
Se você pode determinar que um link simbólico se enquadra na primeira categoria, então vá em frente e exclua-o. Caso contrário, abster-se.
Um programa que percorre diretórios recursivamente e se preocupa com o conteúdo do arquivo geralmente deve ignorar links simbólicos quebrados.
fonte
Não remova cegamente todos os links simbólicos pendentes. Eles podem existir apenas para transportar algumas informações e podem ser mais seguros que os arquivos normais, pois a criação de um link simbólico é atômica.
Por exemplo, o Firefox cria um arquivo de bloqueio "bloqueio" que é um link simbólico cujo valor tem um formato como "endereço_IP: + PID".
fonte
O fnord e o servidor da Web Gatling usam o sistema de arquivos Unix como banco de dados de configuração (em oposição, digamos, ao Microsoft IIS, que usa o registro do Windows, ou ao Apache, que usa um arquivo de configuração complexo para analisar).
Por exemplo, hosts virtuais são apenas diretórios e criar um novo host virtual é tão simples quanto
Configurando quais arquivos servir?
Configurando quais arquivos executar como CGI e quais servir?
E por último (e relevante para esta pergunta): configurando um redirecionamento?
Agora você terá um link simbólico
search.html
que aponta para lugar nenhum, mas é crucial para o funcionamento do seu site.fonte
Um link simbólico pode apontar para um local ainda vazio, para forçar a criação em um local ou nome específico do sistema de arquivos.
Portanto, não - não os remova cegamente.
fonte
Uma desvantagem significativa na exclusão de links simbólicos obsoletos é que você perde a referência para onde eles costumavam apontar para os quais pode ser bastante valioso!
Digamos que eu tenha um link simbólico para um arquivo chamado "
send_to
" que aponte/Users/myname/tmp
e suponha que/Users/myname/tmp
não exista.Com o link simbólico, sei onde o arquivo deveria estar. Por exemplo, neste caso, posso ver que é um diretório temporário e, se precisar corrigi-lo, devo considerar um diretório temporário como destino.
Da mesma forma, um link "
my_config
" que aponte para/etc/conf_file
queconf_file
fique 'ruim' porque o nome foi renomeado para confirm_file ainda é uma informação útil. Se você foi ao/etc
diretório e fez umls
e viu que o arquivo chamadoconf_file
estava ausente, masconfirmation_file
estava lá, você pode ter informações suficientes para corrigir o link agora.fonte
Citando The Linux Command Line (melhor livro de todos os tempos para iniciantes em Linux, e você pode baixá-lo gratuitamente aqui ):
Portanto, não, eu não excluiria links simbólicos, pois isso certamente será uma dor de cabeça, e você corre o risco de danificar seriamente seu sistema.
fonte