¿Es posible cambiar el directorio y que el cambio persista cuando finaliza el script?

Al tratar de responderuna pregunta para otro usuario, Me encontré con algo que despertó mi curiosidad:

import os
os.chdir('..')

Cambiará el directorio de trabajo en lo que respecta a Python, así que si estoy en/home/username/y corroos.chdir('..'), cualquier código posterior funcionará como si estuviera en/home/. Por ejemplo, si luego hago:

import glob
files = glob.glob('*.py')

files será una lista de.py archivos en/home/ en lugar de en/home/username/. Sin embargo, tan pronto como salga el script, volveré a/home/username/, o cualquier directorio desde el que ejecuté el script originalmente.

He descubierto que sucede lo mismo con los scripts de shell. Si tengo el siguiente script:

#!/bin/bash

cd /tmp
touch foo.txt

Ejecutando el script desde/home/username/ creará un archivofoo.txt en/tmp/, pero cuando el guión termine, todavía estaré en/home/username/ no/tmp/.

Tengo curiosidad si hay alguna razón fundamental por la cual el directorio de trabajo no se cambia "permanentemente" en estos casos, y si hayes una forma de cambiarlo permanentemente, por ejemplo, para ejecutar un script con~$ python myscript.py, y haga que el terminal desde el que se ejecutó el script termine en un directorio diferente cuando el script termine de ejecutarse.