Como remover o link simbólico

139

Eu estava tentando criar este link simbólico:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

mas digitei acidentalmente:

sudo ln -s /usr/share/php,yad,in /var/www/phpmyadmin

Então agora eu quero corrigi-lo, mas ele diz que o link simbólico já existe.

James
fonte

Respostas:

165

Você pode usar rmpara excluir o link simbólico.

Exemplo:

-rw-rw-r-- 1 2014-01-02 09:21 tmo
lrwxrwxrwx 1 2014-01-02 09:21 tmo2 -> tmo

Então ...

 rm tmo2

irá remover o link simbólico.

Rinzwind
fonte
1
permissão negada. Isto é o que eu digitei primeiro: sudo ln -s / usr / share / php, yad, em / var / www / phpmyadmin
James
6
permissão negada: você sabe que precisa do sudo se quiser usá-lo em uma situação em que não seja o proprietário do arquivo? Isso vale para 'rm' também.
Rinzwind
2
Eu fiz isso rm / usr / bin / python e removi meu python do ubuntu: S
2
@RaheelKhan não, você não removeu um SYMLINK. O Python conta com esse link simbólico. Se você recriar esse symlink python estará de volta.
Rinzwind 23/07/16
1
Eu tento este comando, mas parece que meu arquivo foi removido, não quero remover meu arquivo
saeed masoomi
24

Você pode tentar o unlinkcomando também.
unlinké um comando alternativo de rm. portanto rm <symlink>, funcionará da mesma forma queunlink <symlink>

Aqui está o link de referência .

hakunami
fonte
9
unlinknão tem nada a ver com links simbólicos em particular. Veja serverfault.com/a/38817/64085
Matthew Leia
@kushvarma mas funciona. você tentou isso?
hakunami
1
a resposta pode estar correta, mas vai confundir os novatos
mit
" unlinké um comando alternativo de rm" [Citação necessária]
mwfearnley 16/09
12

Suponha que você estivesse tentando fazer:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin/

mas acidentalmente fez:

sudo ln -s /usr/share/somethingelse /var/www/phpmyadmin/

Para corrigi-lo, basta navegar até a pasta onde está o link e desvincular

cd /var/www/phpmyadmin/  
~:# unlink somethingelse
Metais Marata
fonte
8

Você usará o seguinte para remover o link simbólico

sudo rm path/to/the/link

Explicação

  • rmé o comando do terminal para remover um arquivo. Veja rm --helppara mais opções que podem ser necessárias.
  • sudoé usado porque o link simbólico foi criado com sudo. Portanto, o arquivo pertence ao root e seu usuário normal não poderá editá-lo / removê-lo, pois possui menos 'poder' que o root.
  • path/to/the/linkserá /usr/share/php,yad,inbaseado no seu comentário.

Extra

Consulte também este post e meu comentário sobre a primeira resposta para acessar o phpmyadmin ao obter um erro não encontrado após a instalação.

chesedo
fonte
O seu comentário não é genérico. Por favor, sempre use o comando genérico para mostrar como remover link simbólico
kushvarma
meios genéricos, deve ser válida para tudo, como o seu comando é específico para / usr / share / php, o Yad, em, mas gostaria rm <link simbólico>
kushvarma
@kushvarma, obrigado. Eu fiz a resposta mais genérica - era originalmente específica porque o OP parecia ter um problema remover o arquivo
chesedo
1

Desculpe post necro, mas encontrei esta pergunta quando eu estava procurando uma resposta para este problema.

Uma pequena ressalva que descobri foi que eu estava tentando executar rme unlinkem um link simbólico e eu estava ficando um erro que era um diretório.

$ rm folder_name/
rm: cannot remove ‘folder_name/’: Is a directory
$ unlink folder_name/
unlink: cannot unlink ‘folder_name/’: Not a directory

Para remover o link simbólico, eu usei, unlink folder_namemas estava falhando se houvesse um rastreio, /por exemplo, unlink folder_name/por considerar um diretório, não o arquivo que você deseja remover.

Randomhero
fonte
0

Eu escrevi aqui porque tive que remover um dpkg-diverte o novo pacote venceu; não instalar até que ele fosse removido.

Então, se você fez algo parecido com isto:

sudo dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc

Você precisa removê-lo com algo como isto:

sudo dpkg-divert --remove /usr/bin/gcc.real
Sudipta Basak
fonte