Alterar links simbólicos não funciona para diretórios

2

Para alterar um link simbólico, pode-se usar a opção -fs para eliminar a necessidade de desvincular ou excluir o link antigo primeiro. No entanto, tentar fazer isso em diretórios parece não funcionar:

$ mkdir dir1
$ mkdir dir2
$ ln -s  dir1 lnk
$ ln -sf dir2 lnk
$ ll
......... lnk -> dir1
$

Por que isso? Existe outra opção para fazer isso com diretórios da mesma forma que com arquivos?

    
por ysap 16.01.2012 / 00:49

1 resposta

3

Por padrão, se você passar um diretório (ou um link simbólico para um diretório) como o segundo argumento para o comando ln , ele criará um link dentro desse diretório com o mesmo nome do primeiro argumento. Assim, com o conjunto de comandos que você emitiu, você deve encontrar um link simbólico denominado dir2 inside dir1 .

Você pode alterar esse comportamento usando a opção -T :

-T, --no-target-directory
       treat LINK_NAME as a normal file

Se você passar essa opção em sua segunda invocação de ln , deverá substituir o link simbólico lnk em vez de criar um novo symlink dentro do primeiro diretório.

    
por James Henstridge 16.01.2012 / 01:35