Pourquoi BASH a-t-il imprimé "bash: cd: write error: Success"?

Je l'ai remarqué plusieurs fois aujourd'hui. Si je tape cd ../Directory pour changer de directory, il affiche "bash: cd: write error: Success". Je ne peux pas déterminer quelles autres commands précédentes pourraient être liées à cela.

  • typeset -f n'imprime rien.
  • alias n'imprime rien.
  • type -a cd imprime "cd est un shell embedded".
  • echo $CDPATH imprime une ligne vide.
  • $BASH_VERSION imprime "bash: 4.2.37 (1) -release: command introuvable".
  • Je n'ai remarqué que 2-3 fois. Le directory initial et le directory cible étaient identiques dans les deux cas. J'ai changé de directorys de cette manière beaucoup d'autres fois, mais je n'ai toujours pas rencontré l'erreur.

Qu'est-ce qui peut causer cela?

Peut-être un bug?

Cela ressemble à un bug potentiel. J'ai trouvé un rapport similaire montrant le même message. Le bug bash: pwd builtin se termine avec une erreur d'écriture: succès .

extrait

Ce message sera affiché si ferror (stdout) renvoie non-zéro. Pour une raison quelconque (probablement l'appel fflush () précédant immédiatement la vérification), stdio fait en sorte que ferror () renvoie true sans avoir à faire d'errno.

Est-ce que cela arrive deux fois de suite? Le pwd builtin appelle clearerr () après l'printing du message d'erreur, donc même si le drapeau d'erreur stdout `colle ', cela devrait le supprimer.

Impossible de mettre à jour l'historique?

L'erreur me fait penser qu'il a réussi à changer de directory, mais n'a pas pu écrire la command cd ../Directory dans votre $HOME/.bash_history . Je voudrais confirmer que ce file est intact et est inscriptible. Vérifiez également que votre directory $HOME est accessible en écriture et qu'il n'est pas plein.

 $ df -h $HOME Filesystem Size Used Avail Use% Mounted on /dev/mapper/fedora_greeneggs-home 402G 157G 225G 42% /home 

Votre command cd est un alias ou très probablement une fonction bash.

 typeset -f # displays functions alias # display aliases 

S'il n'est pas trouvé avec les commands ci-dessus, which cd localisera le path de la command cd .

Recherchez l'alias de cd ou la définition de fonction dans les scripts de démarrage normaux .bash_profile , .bashrc et .profile .