Comportamento estranho quando se procura .zshrc

0

Estou usando zsh 5.0.2 (x86_64-apple-darwin12.3.0) no MacOSX mais recente. Se isso faz alguma diferença, eu também habilitei oh-my-zsh .

O shell parece estar perdendo o arquivo .zshrc quando eu quiser fazer a fonte dele.

O resultado da execução dos seguintes comandos deve expor meu problema claramente. ( ~ » é o meu prompt).

O arquivo existe

~ » ls -l .zshrc
-rw-r--r--  1 user  staff  1882 May 16 10:43 .zshrc
~ » [[ -r .zshrc ]] && echo "Exists"
Exists

O arquivo não é lido por "."

~ » . .zshrc
.: no such file or directory: .zshrc

Eu não sei o que causa esse comportamento, especialmente que isso funciona

~ » . "$(pwd)"/.zshrc
Success!

Minha pergunta é:

Por que . .zshrc não funciona?

    
por rahmu 16.05.2013 / 10:58

1 resposta

3

O comando . procura o arquivo no seu $path , ele não procura por padrão no diretório atual. É por isso que funciona quando você dá o caminho absoluto ( "$(pwd)"/.zshrc ).

Do manual do zsh sobre o comando . :

. file [ arg ... ]

Read commands from file and execute them in the current shell environment.

If file does not contain a slash, or if PATH_DIRS is set, the shell looks in the components of $path to find the directory containing file. Files in the current directory are not read unless ‘.’ appears somewhere in $path.

...

Compare com o source command :

source file [ arg ... ]

Same as ‘.’, except that the current directory is always searched and is always searched first, before directories in $path.

    
por 16.05.2013 / 11:42