Pontos no nome do caminho

6

Estou recebendo um erro de um aplicativo que estou executando.

O erro é assim:

john@john-replacement:~/Desktop/yarbu-1.4.8/bin$ sudo yarbu-engine --VERBOSE
/usr/local/bin/yarbu-engine: line 996: cd: /usr/local/bin/../../etc/yarbu/conf/default: No such file or directory

O que os pontos significam em /usr/local/bin/../../etc/ ?

    
por jth41 27.12.2012 / 22:02

2 respostas

2

A ../ é a notação para "o diretório pai", portanto, no caso apresentado:

/usr/local/bin/../../etc/yarbu/conf/default

O sistema resolverá isso como:

/usr/etc/yarbu/conf/default

É como se você estivesse no diretório /usr/local/bin e digitasse cd .. duas vezes, agora você estaria no diretório /usr .

Você mesmo pode verificar isso:

$ cd /usr/local/bin
$ pwd
/usr/local/bin
$ cd /usr/local/bin/../../../
$ pwd
/
    
por 27.12.2012 / 22:08
2

Além da resposta de gabe, o que é legal:

O readlink do comando unix sempre retornará o caminho real de um arquivo ou diretório: readlink -f /usr/local/bin/../../etc/ retornará /usr/etc/ .

O comando também resolve links simbólicos. Por exemplo, no meu sistema, readlink -f /usr/bin/java retorna /usr/lib/jvm/jdk-7.15-oracle-x64/jre/bin/java . Ambos os casos de uso são muito úteis para scripts.

Btw: .. (e também . que se refere ao diretório onde você está) não são específicos do unix. O mesmo também funcionará em pelo menos todos os sistemas operacionais dos / windows, mac, linux / unix / bsd.

    
por 29.12.2013 / 15:02