Excluindo links simbólicos - Lógicas e como [duplicar]

0

Primeiro, ano novo Happny tudo aqui! Sou muito novo no UNIX \ Linux e criei por engano o seguinte Symlink:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.confservice

Qual é o caminho certo para excluir e qual é a lógica por trás disso?:

Eu entendo que devo fazer o comando unlink ***something*** dentro da pasta /etc/apache2/conf-enabled/ e depois que eu naveguei para ele ... Portanto, eu pergunto:

  1. por que a ação de exclusão é feita com base no segundo caminho e não no primeiro ...?

  2. Normalmente, alguma outra coisa está escrita além do nome do arquivo?

    • Estou com medo de causar danos, por isso peço isso ...
por JohnDoea 01.01.2016 / 05:18

3 respostas

3

De man rm :

The rm utility removes symbolic links, not the files referenced by the links.

Então, faça rm /etc/apache2/conf-enabled/phpmyadmin.confservice .

Você deve aprender a usar man em quaisquer utilitários antes de fazer perguntas, assim como conselhos gerais. Isso economizará seu tempo e você aprenderá muito.

I'm afraid to make damage therefore I ask this...

Eu definitivamente entendo esse sentimento, eu sou do mesmo jeito quando faço algo novo que eu não entendo muito bem! A solução é fazer alguns arquivos de teste com os quais você pode brincar. Na verdade, alguns comandos até têm uma opção de "execução a seco" que faz com que eles mostrem quais etapas eles executariam, sem realmente executá-los.

Usually, is something else be written there besides the file name?

Escrito onde --- no link simbólico? O link simbólico literalmente contém apenas o caminho para o arquivo que está apontando, no formato de texto. Você pode imprimir o conteúdo de um link simbólico fazendo readlink my_link .

    
por 01.01.2016 / 05:54
2

Um link simbólico é geralmente criado como (das man pages):

ln -s target link_name

Aqui, target é uma entidade já existente (por exemplo, arquivo ou diretório); link_name é o nome do link (sym) (um ponteiro ou atalho, se você disser) para o arquivo de destino.

No seu caso, /etc/phpmyadmin/apache.conf é o alvo - parece algum arquivo de configuração para o PHP. Considerando que /etc/apache2/conf-enabled/phpmyadmin.confservice é o link simbólico que você está criando.

Chegando ao problema de exclusão, geralmente é removido o link_name - o segundo caminho fornecido para ln , mas não o target . Isso mantém o arquivo originalmente vinculado; apenas "desassocia" o novo nome criado. No seu caso, a exclusão de /etc/apache2/conf-enabled/phpmyadmin.confservice manteria o arquivo de configuração original /etc/phpmyadmin/apache.conf . Se necessário, você pode criar outro link simbólico apontando para o alvo em questão.

Finalmente, se você excluir o target após criar um symlink, um "link quebrado" será formado. Se você fizer ls -l , o link simbólico será destacado em vermelho. Observe que excluir o destino de um link simbólico não é nada como uma ação proibida - não é um caso de uso típico.

    
por 01.01.2016 / 07:57
0

Se você quiser os detalhes, siga o link no comentário, mas uma resposta simples à sua pergunta é que um link simbólico é como um atalho para outra coisa. ( segundo caminho é o link simbólico aqui)

Então, se você excluir o atalho, isso não fará mal ao original

E você pode nomear o atalho que quiser.

    
por 01.01.2016 / 05:44

Tags