Conclusão de guias com diretórios / links

25

Eu tenho esse problema com a conclusão de tabulação no terminal no archlinux e no ubuntu:

Eu tenho um link que vincula a um diretório chamado "something" no meu diretório pessoal. Agora, quando abro um terminal e quero fazer algo com esse diretório, digamos apenas cd, digito cd somete depois clico em tab, porque agora "algo" é a única possibilidade de ser concluído.

O problema é que não há barra após algo (como deveria ser, pois é um link para um diretório). Preciso pressionar a tecla tab mais uma vez para que a barra apareça.

Existe uma maneira de corrigir isso, ie. para que a barra apareça diretamente?

houbysoft
fonte

Respostas:

40

echo "set mark-symlinked-directories on" >> ~/.inputrc

Ctrl+ x, então Ctrl+r

via Ubuntu Forums - Comportamento estranho de conclusão da guia shell bash

N Heinrichs
fonte
2
Digno de nota: isso também funciona para OSX
isakkarlsson
1
Não se esqueça de incluir o arquivo padrão em / etc / inputrc. Caso contrário, coisas como ctrl left não funcionarão mais. $ include / etc / inputrc
keiki
4

Eu recebo o mesmo comportamento, execpt, não o considero um bug / problema. A primeira conclusão é para o próprio link , e a segunda é para o destino do link (que por acaso é um diretório).

Considere isto:

$ ssh devio.us
Diretório fredden @ wolfman $ mkdir 
Link do diretório fredden @ wolfman $ ln -s 
fredden @ wolfman $ ls -l link 
lrwxr-xr-x 1 fredden shifty 9 de jun 21 18:03 link -> diretório
fredden @ wolfman $ ls -l link /
8 total
drwxr-xr-x 2 fredden shifty 512 jun 21 18:03.
drwxr-xr-x 3 fredden shifty 512 jun 21 18:03 ..
fredden @ wolfman $ 
Fredden
fonte
3
Também diria que esse é um recurso. Este é um tratamento 100% consistente, como acontece com a diferença entre rm somethinge rm something/.
Benjamin Bannier
Entendo. Então, se é por design, presumo que não há maneira de contornar isso? É só que eu tenho que fazer um cd no dir / link com bastante frequência, e digitar tab duas vezes leva mais tempo.
21810 houbysoft
1
Não tenho certeza se isso ajuda, mas <code> cd link </code> e <code> cd link / </code> produzem os mesmos resultados para mim.
fredden
2
Eu acredito que o OP quer cd em um subdiretório de link, então digite "cd lin <tab> abc" para obter "cd link / abc" em vez de "cd linkabc" (ou seja, não precisa digitar a barra), mesmo que "cd link" e "cd link /" se comportam de forma idêntica.
e Roger Pate: sim, eu sei que se comporta da mesma maneira, o problema é exatamente como Roger Pate disse. Oh bem, eu acho que vou ter que guia digite duas vezes ..
houbysoft