. não é um bash (ou qualquer outro shell) embutido. Cada diretório possui entradas . e .. . Você pode verificar por cd'ing para algum diretório arbitrário e fazendo ls -lia . Você verá . e .. entradas. Eu usei o sinalizador '-i' em ls para obter números de inode: observe-os para . e .. . Vá até um diretório, mas fazendo cd .. ou cd /something/soemthingelse/whatever . Do ls -lia novamente. Observe que o número de inode de . é idêntico ao de .. em sua primeira listagem. Todo diretório tem diretórios quando criado, chamado "." e "..". O "." entry tem o mesmo número de inode que o nome do diretório em seu diretório pai. A entrada ".." é sempre o diretório pai. Se você fizer ls -li / , verá que "." e ".." tem o mesmo valor.
Esta convenção elimina a necessidade de um código de caso especial para referenciar o diretório atual: ele é sempre chamado de ".". Elimina a necessidade de código de caso especial para "subir um diretório": é sempre "..". Os únicos casos especiais são o diretório raiz e os sistemas de arquivos montados em rede. A raiz do sistema de arquivos tem "." e ".." com o mesmo número de inode, não diferente. Os sistemas de arquivos montados em rede têm uma descontinuidade nos números de inode no ponto de montagem, e o comportamento depende do sistema de arquivos remoto e de qual protocolo é usado para montá-lo.
No que diz respeito à alteração no prompt, quando você invocou mv ../ttt ../tttt , você realmente renomeou o diretório de trabalho do seu shell. Você não chamou um comando shell que verifica o diretório de trabalho até que você tenha cd . , portanto, o pwd informará o nome antigo, /tmp/tt .