为什么 BASH 打印“bash: cd: write error: Success”?

Vil*_*age 12 bash

我今天注意到了好几次。如果我输入cd ../Directory更改到另一个目录,它会打印“bash: cd: write error: Success”。我无法确定之前还有哪些其他命令可能与此相关。

  • typeset -f 什么都不打印。
  • alias 什么都不打印。
  • type -a cd 打印“cd 是内置的 shell”。
  • echo $CDPATH 打印一个空行。
  • $BASH_VERSION 打印“bash: 4.2.37(1)-release: command not found”。
  • 我只注意到了 2-3 次。在这两种情况下,初始目录和目标目录是相同的。我多次以这种方式更改目录,但始终没有遇到错误。

什么可能导致这种情况?

slm*_*slm 6

也许是一个错误?

这听起来像是一个潜在的错误。我发现了一份类似的报告,显示了相同的消息。错误bash: pwd 内置退出并写入错误: Success

摘抄

如果 ferror(stdout) 返回非零值,将显示此消息。由于某种原因(可能是在检查之前的 fflush() 调用),stdio 导致 ferror() 返回 true 而不设置 errno。

这是否连续发生两次?pwd 内置函数在打印错误消息后调用 clearerr(),因此即使 stdout 错误标志“sticks”,也应该清除它。

不能更新历史?

该错误使我认为它成功更改目录,但无法将命令写入cd ../Directory您的$HOME/.bash_history. 我会确认这个文件是完整的并且是可写的。还要确认您的$HOME目录可写且未满。

$ df -h $HOME
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  157G  225G  42% /home
Run Code Online (Sandbox Code Playgroud)


sus*_*tus 3

您的 cd 命令要么是别名,要么很可能是 bash 函数。

typeset -f  # displays functions
alias       # display aliases
Run Code Online (Sandbox Code Playgroud)

如果用上面的命令没有找到which cd就会定位该命令的路径cd

cd在正常启动脚本和中查找别名或函数定义.bash_profile.bashrc.profile

  • 使用`type -a cd` (2认同)