On 4/23/12 3:57 AM, Artur Rataj wrote:
> To be exact, symlink is in the directory ~/a, and it points to ~/test and
> there is also a directory ~/.java. So, after cd ~/a/symlink, there are two
> ../.java files -- one in the physical parent, and one in the logical
> parent. The former is a directory, the latter is a plain file.
> 
> ~/a/symlink$ cd ../
> 
> produces one alternative: .java, but only if the plain file .java exists.

OK, we're back to completion again.  My previous post was intended to
illustrate the effect of a logical view of the file system.

I can't reproduce very much of what you're seeing.  I can only conclude
that there is a completion specification for `cd' that is getting in the
way and complicating things.  For instance, after a `cd symlink', hitting
TAB after "cd ../" gives me the alternatives `i' and `symlink'.  Hitting
TAB after "cd symlink/../" in `a' gives me the same two alternatives.
You're not seeing that, so I have to think you're using some other function
to generate the completions.

One thing, however, could make a difference.  If, for some reason, you
get .java as a completion and there is a file named .java in the logical
parent and a directory named .java in the physical parent, cd will work.
This is a case of cd trying to be helpful: directory canonicalization
fails, so the shell tries to use the argument as supplied as a last resort.
In this case, that succeeds.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to