Como alterar um symlink no OS X?

12

Como faço para mudar para onde um link simbólico aponta, sem excluir e criar um novo (com ln -s "/path/to/point/to" "/path/where/symlink/is" )?

Quando tentei fazer isso com o link simbólico "Atual" do Java, o Java nem funcionava (pela linha de comando, pelo menos, dizia 'Falha de Segmentação'), mas voltava ao normal quando eu restaurava o antigo "Atual" symlink com o Time Machine (mas depois descobri que deveria usar /Applications/Utilities/Java Preferences.app de qualquer forma para alterar a versão atual do java).

    
por mk12 06.09.2009 / 14:58

5 respostas

6
mkdir /path/where/newsymlink
ln -s /path/to/point/to /path/where/newsymlink/is
mv /path/where/newsymlink/is /path/where/symlink/
rmdir /path/where/newsymlink

No entanto, o utilitário Java Preferences muda mais do que apenas um link simbólico; você deve usar isso para garantir que a versão do Java seja alterada.

    
por 06.09.2009 / 16:07
15
ln -hfs newlocation existinglink

ou

ln -nfs newlocation existinglink

mudará o link existente para apontar para a nova localização

(o -n e -h são idênticos em operação)

De "man ln"

-h If the target_file or target_dir is a symbolic link, do not follow it. This is most useful with the -f option, to replace a symlink which may point to a directory.

-f If the target file already exists, then unlink it so that the link may occur. (The -f option overrides any previous -i options.)

-s Creae a symbolic link

    
por 10.07.2015 / 13:11
10

Tente:

unlink /path/to/current/link
ln -s /path/to/target /path/to/symbolic/link
    
por 19.10.2009 / 22:55
1

O comando ln não permite que você mude links, apenas crie novos.

    
por 19.10.2009 / 22:52
0

Você comparou as permissões nos links e nos destinos antes e depois de alterar o link? Você pode precisar apenas seguir com os comandos chown e chmod apropriados para fazê-lo funcionar.

    
por 06.09.2009 / 15:11