Можно ли изменить каталог и сохранить его после окончания работы скрипта?

Пытаясь ответитьвопрос для другого пользователяЯ наткнулся на то, что пробудило мое любопытство:

import os
os.chdir('..')

Изменит рабочий каталог, насколько это касается Python, поэтому, если я нахожусь в/home/username/и я бегуos.chdir('..')любой последующий код будет работать так, как будто я нахожусь в/home/, Например, если я тогда сделаю:

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

files будет список.py файлы в/home/ а не в/home/username/, Однако, как только скрипт выйдет, я вернусь в/home/username/или каталог, из которого я запускал скрипт.

Я обнаружил, что то же самое происходит со сценариями оболочки. Если у меня есть следующий скрипт:

#!/bin/bash

cd /tmp
touch foo.txt

Запуск сценария из/home/username/ создаст файлfoo.txt в/tmp/, но когда сценарий закончится, я все равно буду в/home/username/ не/tmp/.

Мне любопытно, есть ли какая-то фундаментальная причина, почему рабочий каталог не изменяется "навсегда" в этих случаях, и если естьявляется способ изменить его навсегда, например, запустить скрипт с~$ python myscript.pyи иметь терминал, с которого скрипт был запущен, в конце концов, в другом каталоге, когда скрипт завершит выполнение.

Ответы на вопрос(1)

Ваш ответ на вопрос