Por que o BASH imprimiu “bash: cd: write error: Success”?

11

Eu percebi isso várias vezes hoje. Se eu digitar cd ../Directory para mudar para outro diretório, ele imprime "bash: cd: write error: Success". Não consigo determinar quais outros comandos anteriores podem estar relacionados a isso.

  • typeset -f não imprime nada.
  • alias não imprime nada.
  • type -a cd imprime "cd é um shell embutido".
  • echo $CDPATH imprime uma linha vazia.
  • $BASH_VERSION imprime "bash: 4.2.37 (1) -release: comando não encontrado".
  • Eu só notei isso 2-3 vezes. O diretório inicial e o diretório de destino eram idênticos nas duas situações. Eu mudei diretórios desta maneira muitas outras vezes, mas não encontrei o erro sempre.

O que poderia estar causando isso?

    
por Village 22.02.2014 / 10:31

2 respostas

6

Talvez um bug?

Isso soa como um bug em potencial. Eu encontrei um relatório semelhante mostrando a mesma mensagem. O erro bash: pwd builtin sai com erro de gravação: Sucesso .

trecho

This message will be displayed if ferror(stdout) returns non-zero. For some reason (probably the fflush() call immediately preceding the check), stdio is causing ferror() to return true without setting errno.

Does this happen twice in a row? The pwd builtin calls clearerr() after printing the error message, so even if the stdout error flag 'sticks', that should clear it.

Não é possível atualizar o histórico?

O erro me faz pensar que foi bem-sucedido ao alterar os diretórios, mas não conseguiu gravar o comando cd ../Directory no seu $HOME/.bash_history . Eu confirmo que este arquivo está intacto e é gravável. Confirme também que o diretório $HOME é gravável e não está cheio.

$ df -h $HOME
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  157G  225G  42% /home
    
por 22.02.2014 / 14:32
3

Seu comando cd é um alias ou, muito provavelmente, uma função bash.

typeset -f  # displays functions
alias       # display aliases

Se não for encontrado com os comandos acima, which cd localizará o caminho do comando cd .

Procure o cd alias ou a definição de função nos scripts de início normais .bash_profile , .bashrc e .profile .

    
por 22.02.2014 / 10:46

Tags