目前尚不清楚您修改了什么,但无论如何,bash(至少像ksh93IIRC 引入的概念和zsh)支持使用enable -f file name语法将内置函数加载为外部动态加载的模块。
这些作为普通文件的模块当然可以独立分发,只要您确保它们与目标版本/架构兼容。五年前当你问这个问题时,这已经是真的了。
在您的情况下,一个问题是似乎没有记录的方法可以cd通过动态加载的方式重载内部内置,同时保持访问前者的能力。
一个简单的解决方法是使用不同的名称实现您的自定义 cd,例如 mycd,如下所示:
int mycd_builtin(list)
WORD_LIST *list;
{
  int rv;
  rv=cd_builtin(list);
  if(rv == EXECUTION_SUCCESS) {
    char wd[PATH_MAX+1];
    getcwd(wd,sizeof(wd));
    // do your custom stuff knowing the new working directory
    ...
  }
  return (rv);
}
然后为您的自定义版本使用别名或更好的 shell 函数,而不是常规版本:
cd() {
  mycd "$@"
}
只要您的自定义不影响标准命令的行为,因此不会冒险破坏使用它的脚本,您的方法就没有错。