Como faço para o cd mudar para o caminho completo ao seguir links simbólicos?

4

Como posso obter o shell para entender o caminho completo depois de seguir um link simbólico. No exemplo abaixo, eu gostaria que o primeiro comando "pwd" informasse "/ Users / sholden / Projects / PS1 / examples", e o comando "cd .." me levasse para / Users / sholden / Projects / PS1 / em vez de voltar para o meu diretório pessoal. Eu tenho uma memória fraca de uma configuração que fez isso no shell Bourne (ou foi Korn), mas estou tendo problemas para recuperar os detalhes de 25 anos atrás ...

AirHead:~ sholden$ ls -ld examples
lrwxr-xr-x  1 sholden  staff  53 Nov 15 09:33 examples -> /Users/sholden/Projects/PS1/examples
AirHead:~ sholden$ cd examples
AirHead:examples sholden$ pwd
/Users/sholden/examples
AirHead:examples sholden$ cd ..
AirHead:~ sholden$ pwd
/Users/sholden
AirHead:~ sholden$ 

Foi "set hardpaths?" Agradecemos antecipadamente.

    
por holdenweb 15.11.2012 / 21:01

2 respostas

5

você deve usar a opção cd with -P para fazer isso.

do homem pange:

 -P     Handle the operand dot-dot physically; symbolic link components shall be resolved before dot-dot components
              are processed (see step 7. in the DESCRIPTION).

pequeno teste para mostrar como funciona:

kent@ArchT60:/tmp$ ls -ld /opt/google/picasa/
drwxr-xr-x 3 root root 4096 Aug  5  2010 /opt/google/picasa/

kent@ArchT60:/tmp$ ln -s /opt/google/picasa/ cdLink
kent@ArchT60:/tmp$ ls -l cdLink
lrwxrwxrwx 1 kent kent 19 Nov 15 21:23 cdLink -> /opt/google/picasa/

kent@ArchT60:/tmp$ cd -P cdLink
kent@ArchT60:/opt/google/picasa$ pwd
/opt/google/picasa

kent@ArchT60:/opt/google/picasa$ cd /tmp/cdLink
kent@ArchT60:/tmp/cdLink$ 
kent@ArchT60:/tmp/cdLink$ cd -P ..
kent@ArchT60:/opt/google$ 

acho que o exemplo acima mostrou o que você está procurando.

    
por 15.11.2012 / 21:25