RedoxFS научилась разрешать относительные пути с переходом вверх
21.02.2026Файловая система RedoxFS научилась корректно разбирать относительные пути, включая переход вверх по дереву каталогов. Раньше такие пути разрешались неверно.
Что такое канонический относительный путь
Путь разрешается относительно каталога. Если в нём есть .. — переход в родительский каталог, — нужно пройти вверх, а затем свернуть получившийся путь, убрав пары «каталог, затем ..».
Например, путь b/../c из каталога a должен дать a/c: сначала спуск в b, затем подъём назад, и имя b не должно остаться в результате. Если этого не делать, путь указывает не туда — либо на несуществующее, либо на другой файл.
Почему это ломает код
Пути с .. возникают сами собой, без всякого намерения программиста. Код на Rust строит пути составными частями: Path::join, обработчики аргументов командной строки, конфигурация. Случайный компонент с .. — обычное дело, особенно после нормализации ввода.
Если файловая система разбирает такой путь неверно, ошибка выглядит необъяснимо: программа открывает не тот файл или получает «нет такого файла» для пути, который явно существует. Причём тот же код на другой системе работает — то есть переносимость нарушена, а причина лежит в файловой системе, а не в программе.
Оговорка к формулировке
Сводка пишет о «поддержке относительных путей», но соответствующий коммит называется точнее: Resolve parent paths, то есть о разборе компоненты ... Новость построена на коммите, и толкование не расширено: речь о корректном разрешении перехода вверх, а не о новом синтаксисе путей.
Оригинал
Коммит feat: Resolve parent paths от 21 февраля 2026 года в репозитории redox-os/redoxfs, слит в основную ветку того же дня. Сводка «This Month in Redox — February 2026», раздел «RedoxFS Improvements»
Упоминаний: 1 · Просмотров: 2