Re: Resolving symlinked dirs when execing command



Hi Pavel,

On Thursday 11 October 2007 14:40, Pavel Tsekov wrote:
> > $ pwd
> > /auto/software
> > 
> > It differs from what happens under e.g. shell:
> > 
> > sh-3.1$ cd /software
> > sh-3.1$ pwd
> > /software
> > 
> > Why mc resolves dir and cd'es into it before it forks a child?
> 
> I am not able to reporoduce this behaviour. If you want me to track it
> down you'll have to give more details. I tried with latest CVS version of MC with subshell support enabled. I created a link to a random directory and entered it via "cd linkname" entered from the prompt widget, then I pressed Ctrl + O and in the subshell I ended up in "linkname" and not in the resolved directory. Also running `pwd' from the prompt widget did not print the resolved dir but "linbkname".

I was wrong. In Unix, there is no remebering of "which
symlink you followed by chdir'ing here". shell just tries
to help with that. pwd builtin will lie, but "real"
current directory cannot be a symlink:

sh-3.1$ ls -l /software
lrwxrwxrwx    1 root     root           14 Jun 26 12:23 /software -> /auto/software

sh-3.1$ cd /software

sh-3.1$ pwd
/software   <======= shell lied to you

sh-3.1$ /bin/pwd
/auto/software     <====== truth

--
vda




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]