26

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?

2 Answers 2

44

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 Oct 6, 2013 at 20:07
  • 2
    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, 2016 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/. Jun 21, 2010 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, 2010 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, 2010 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, 2010 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, 2010 at 1:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .