ls -l mostra o diretório symlinked com duas barras à direita

0

Eu apenas copiei meu diretório ~/.config para outro e criei um link simbólico para $HOME .

Quando executo ls -l , aparece assim com a barra dupla no final:

lrwxrwxrwx  1 lud  lud     22 Jul 23 20:25 .config -> /home/lud/dots/config//

Não me lembro se já vi isso antes. Eu olhei para outro diretório com links simbólicos para ver se a mesma coisa está acontecendo em todos os lugares, mas o outro diretório com links simbólicos tem apenas uma barra invertida no final.

O link simbólico funciona. Não parece que nada está quebrado. Eu só estou querendo saber se a barra extra significa alguma coisa, ou se é mesmo deveria estar lá.

    
por MiniLud 23.07.2018 / 20:56

2 respostas

1

Se você tiver um alias que mapeie ls para ls -F , ele sufocará todos os nomes de arquivo de acordo com seu tipo.

Quando essa opção está ativada, todos os caminhos para diretórios são sufixados com / . Portanto, se o caminho de destino do link simbólico já tiver uma barra invertida no final, você verá dois.

    
por 23.07.2018 / 21:38
2

POSIX define:

3.271 Pathname

[…] A pathname can optionally contain one or more trailing <slash> characters. Multiple successive <slash> characters are considered to be the same as one <slash>, except for the case of exactly two leading <slash> characters.

Cada um desses links deve funcionar:

.config -> /home/lud/dots/config//
.config -> /home/lud/dots/config/
.config -> /home/lud/dots/config

(Embora se /home/lud/dots/config fosse um arquivo, somente o último caminho faria um symlink válido).

O seu link simbólico é o que é porque foi criado desta forma (a menos que esta outra resposta se aplique). Você aparentemente deu o caminho de destino com duas barras à direita e é um caminho válido. Note que você pode ligar para quase qualquer coisa; este comando

ln -s path/that//may///not/exist/foo//// baz

criará um symlink

baz -> path/that//may///not/exist/foo////

O link em si provavelmente será quebrado porque você não tem um diretório foo/ neste caminho. A existência do alvo é importante quando você tenta usar o symlink, não importa para ln -s . Se path/that/may/not/exist/foo/ existir, o link simbólico funcionará.

    
por 23.07.2018 / 21:12