Linux Bash - como saber em qual diretório eu realmente estou com links simbólicos?

1

suponha que eu tenha uma cadeia de links simbólicos A - > B - > C

quando eu digito pwd, pode mostrar-me em A, B ou C, dependendo de como eu chego aqui.

Como mostro o endereço do diretório físico, ou seja, não é representado por nenhum link simbólico?

    
por CodeNoob 28.08.2014 / 16:44

3 respostas

2

Você já tentou

pwd -P

Funciona para mim (usando zsh).

$ ls -l

  drwxrwxr-x 2 xxxxxxx xxxxxxx 4096 Aug 28 10:14 a 
  lrwxrwxrwx 1 xxxxxxx xxxxxxx    1 Aug 28 10:15 b -> a

$ cd b

$ pwd
  /home/xxxxxxx/temp/b

$ pwd -P
  /home/xxxxxxx/temp/a
    
por 28.08.2014 / 17:29
1
  • O comando que você está procurando é provavelmente **pwd -P** .
  • Você pode achar útil até readlink -f . (%código%).
  • Em alguns sistemas, você pode encontrar realpath que você pode invocar não apenas no diretório atual
    man info coreutils readlink mas até mesmo para qualquer outro arquivo realpath .

Seu realpath \my\long\path\file.ext geralmente tem um comando pwd usado em vez de shell .
Se você escrever em um shell /bin/pwd , ele responderá se o seu shell fornecer uma versão incorporada.

Para a ajuda correta, você pode consultar

  • type pwd geralmente para o comando man pwd
  • \bin\pwd e depois da pesquisa de man bash para a versão incorporada.
  • pwd para os outros shells (zsh, csh, tcsh ...)

De man <TheShellName> , por exemplo você pode ler

pwd [-LP]

Print the absolute pathname of the current working directory. The pathname printed contains no symbolic links if the -P option is supplied or the -o physical option to the set builtin command is enabled. If the -L option is used, the pathname printed may contain symbolic links. The return status is 0 unless an error occurs while reading the name of the current directory or an invalid option is supplied.

    
por 28.08.2014 / 19:18
0

Você pode usar o readlink (se disponível em sua distro) no diretório atual:

$ readlink -f .

ou com um caminho completo:

$ readlink -f /my-dir/with-some-link

rhel / centos fornece em pacote de coreutils. h.

    
por 28.08.2014 / 17:50