ctacka
@ctacka

Как хранится текущая директория в linux?

  • как хранится текущая директория в linux?
  • как работает команда cd (не результат, а именно процесс)?
  • как можно поменять текущую директорию, кроме cd?
  • Вопрос задан
  • 617 просмотров
Решения вопроса 1
ctacka
@ctacka Автор вопроса
/proc/$$/cwd - это симлинк на текущую директорию
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
как хранится текущая директория в linux?

Текущая директория -- атрибут каждого процесса. Хранится она в структуре task_struct, в поле fs->pwd как объект типа path. Ядро предоставляет следующий интерфейс к текущей директории:
int chdir(const char *path);
char *getcwd(char *buf, size_t size);


как работает команда cd (не результат, а именно процесс)?

Делает системный вызов chdir. Это легко наблюдать с помощью strace:
$ strace bash -c "cd /" 2>&1 | grep chdir
chdir("/")                              = 0
Ответ написан
Комментировать
GavriKos
@GavriKos
как хранится текущая директория в linux?

Где то в недрах памяти процесса, который знает о текущей директории. Скорее всего bash.

как работает команда cd (не результат, а именно процесс)?

Исходники скорее всего открыты - берите и смотрите.
Ответ написан
Комментировать
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
хранится в переменных окружения, в переменной PWD
кроме cd, устанавливается замечательно через PWD="/"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы