Hide Forgot
I don't know if this is proper behavior or not, but su seems to follow symlinks to their source. However, when you exit the shell that you su to, it eg: [mgalgoci@skuzzlebutt linux]$ pwd /usr/src/linux [mgalgoci@skuzzlebutt linux]$ su Password: [root@skuzzlebutt linux-2.2.5]# [root@skuzzlebutt linux-2.2.5]# exit exit [mgalgoci@skuzzlebutt linux]$ ls -al ../linux lrwxrwxrwx 1 root root 11 Apr 24 14:13 ../linux -> linux-2.2.5 [mgalgoci@skuzzlebutt linux]$
The function getcwd(3) recurses backward to / from the current directory in order to discover the path. When the shell is first invoked (by su in this case), getcwd is invoked to find the current directory. Henceforth, the arg of each cd command is used to save the current directory. So, in your case, to restore the prompt, you would need to do cd ../linux or cd /usr/src/linux to restore the prompt value.