Comportamento inconsistente criando links simbólicos com sinalizador relativo e de força

2

Eu tenho um problema com a criação de links simbólicos com ln , com o parente e o sinalizador de força definidos.

O cenário é o seguinte:

$ tree
.
├── folder1
│   └── file
└── folder2

Eu criei o link:

$ ln -sfr folder1/file folder2
$ tree
.
├── folder1
│   └── file
└── folder2
    └── file -> ../folder1/file

É assim que eu quero. Mas quando eu re-executar o comando, eu não entendo porque o link está apontando para si mesmo:

$ ln -sfr folder1/file folder2
$ tree
.
├── folder1
│   └── file
└── folder2
    └── file -> file

Executar o comando pela terceira vez corrige o erro:

$ ln -sfr folder1/file folder2
$ tree
.
├── folder1
│   └── file
└── folder2
    └── file -> ../folder1/file

A execução novamente do comando várias vezes alterna entre dois estados. Eu realmente me pergunto por que isso é. De acordo com o manual, isso não deve ser problema.

A versão ln usada (conforme fornecido com o Ubuntu 14.10):

$ ln --version
ln (GNU coreutils) 8.21
[...]
    
por Oliver 17.03.2017 / 14:59

1 resposta

1

Este é um bug e aparece no coreutils da versão 8.16 para a 8.21. Foi corrigido em 8.22. Das notas de versão da versão 8.22:

ln --relative now updates existing symlinks correctly. Previously it based the relative link on the dereferenced path of an existing link. [This bug was introduced when --relative was added in coreutils-8.16.]

link

    
por 23.03.2017 / 14:19

Tags