Las pautas de sintaxis de la utilidad POSIX (específicamente # 13) especifican que para las utilidades que esperan leer un nombre de archivo, -significa entrada estándar, y para las utilidades que esperan que se escriba un nombre de archivo, -significa salida estándar. Por ejemplo, cat somefile -copia el contenido de somefilea su salida estándar, seguido de lo que lee en su entrada estándar.
Esta directriz no se aplica al cdcomando ya que no lee ni escribe en un archivo. cdhace algo diferente: el argumento -significa "el directorio anterior". El comando cd -es equivalente a cd "$OLDPWD" && pwd. Este comportamiento es específico del cdcomando y de comandos inspirados directamente como pushd.
Tenga en cuenta que -es un operando, no una opción. Solo los argumentos que comienzan con -y no son justos -o --son opciones. La principal implicación de ser un operando es que --no afecta su significado especial. Por ejemplo, cd -- -Pcambia a un subdirectorio llamado -P, pero cd -- -es lo mismo que cd -, no cambia a un directorio llamado -. Del mismo modo, cat -- -no lee de un archivo llamado -sino de una entrada estándar.
cdes un comando incorporado, no un comando externo (ni tendría ninguna forma de funcionar como tal).cd -es, por lo tanto, una característica de nivel de shell.