25

I have this problem with tab-completion in terminal in both archlinux and ubuntu:

I have a link which links to a directory named "something" in my home directory. Now when I open a terminal and want to do something with that directory, let's say just cd, I'd type cd somet and then hit tab because now "something" is the only possibility it gets completed.

The problem is that there is no slash after something (as there should be since it's a link to a directory). I have to hit tab one more time for the slash to appear.

Is there a way to fix this, ie. so that the slash appears directly?

41

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

Ctrl+x, then Ctrl+r

via Ubuntu Forums - Strange bash shell tab completion behaviour

2
  • 2
    Noteworthy: this also works for OSX – isakkarlsson Oct 6 '13 at 20:07
  • 1
    Don't forget to include the default file in /etc/inputrc. Otherwise things like ctrl left won't work anymore. $include /etc/inputrc – keiki Sep 19 '16 at 8:00
4

I get the same behaviour, execpt I don't regard it as a bug/problem. The first completion is for the link itself, and the second is for the link's target (which happens to be a directory).

Consider this:

$ ssh devio.us
fredden@wolfman $ mkdir directory 
fredden@wolfman $ ln -s directory link 
fredden@wolfman $ ls -l link 
lrwxr-xr-x  1 fredden  shifty  9 Jun 21 18:03 link -> directory
fredden@wolfman $ ls -l link/
total 8
drwxr-xr-x  2 fredden  shifty  512 Jun 21 18:03 .
drwxr-xr-x  3 fredden  shifty  512 Jun 21 18:03 ..
fredden@wolfman $ 
5
  • 3
    Would also say that this is a feature. This is 100% consistent treatment as with the difference between rm something and rm something/. – Benjamin Bannier Jun 21 '10 at 22:36
  • I see. So if it is by design, I assume there is no way around it? It's just that I have to cd to the dir/link quite often, and typing tab twice takes more time. – houbysoft Jun 21 '10 at 22:49
  • 1
    Not sure if this helps, but <code>cd link</code> and <code>cd link/</code> yield the same results for me. – fredden Jun 22 '10 at 22:30
  • 2
    I believe the OP wants to cd into a subdir of link, so type "cd lin<tab>abc" to get "cd link/abc" rather than "cd linkabc" (i.e. not have to also type the slash), even though "cd link" and "cd link/" do behave identically. – Roger Pate Jun 24 '10 at 12:55
  • and Roger Pate: yes, I know it behaves the same way, the problem is exactly as Roger Pate said. Oh well, I guess I'll have to type tab twice.. – houbysoft Jun 28 '10 at 1:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.