У меня нет репутации, чтобы комментировать, поэтому я должен ответить на ваш вопрос, даже если я не могу полностью понять, что вы имеете в виду
обновленный идентификатор inode
Хорошо, чтобы получить путь от корневого каталога до каталога, в котором вы находитесь, мы идем в обратном направлении. Вы должны сначала получить номер инодов каталога , вы находитесь на (вы получите его от .
А затем получить родительский каталог через ..
запись , а затем искать в родительском каталоге ищет каталог , который имеет то же самое номер инода, который вы получили в начале. Это имя этой записи каталога в родительском каталоге. Таким образом, вы получите, как этот каталог .
вызывается в родительском каталоге ... повторяя эту итерацию, вы получите имя родительского каталога ... и так далее, пока .... что?
Хорошо, в корневом каталоге есть запись ..
которая указывает на себя (как .
Делает), и вы должны сравнить номер инода, который вы получили в прошлый раз, с номером, который вы получили в этой итерации, и остановиться, если они совпадают с номером инода , Как только этот специальный каталог достигнет, у вас будет список имен, которые вы должны изменить, поместите косые черты / между ними, и вы получите путь к фактическому каталогу.
Если вы не находитесь в корневой файловой системе, ядро создает магию, необходимую для перехода в родительский каталог (он следует за записью ..
через точки монтирования, игнорируя, что запись ..
указывает на себя), и вы получите путь к Корневой каталог правильно, так что вы можете следовать этому методу, пока не получите .
и ..
указывая на тот же индекс.
Я ожидаю, что это полностью отвечает на ваш вопрос.