Я пишу бібліотеку для маніпулювання рядками шляху Unix. У цьому випадку мені потрібно зрозуміти кілька незрозумілих куточків синтаксису, про які більшість людей не турбуватиметься.
Наприклад, якнайкраще я можу сказати, здається, що foo/bar
і те, і foo//bar
інше вказують на одне місце.
Крім того, ~
зазвичай стоїть на домашньому каталозі користувача, але що робити, якщо він з’являється посеред шляху? Що ж відбувається тоді?
На ці та кілька десятків інших незрозумілих питань потрібно відповісти, якщо я буду писати код, який правильно обробляє всі можливі випадки. Хтось знає про остаточне посилання, яке пояснює точні правила синтаксису для цього матеріалу?
(На жаль, пошук таких термінів, як "синтаксис контуру Unix" просто налічує мільйон сторінок, де обговорюється $PATH
змінна ... Чорт, я навіть намагаюся знайти відповідні теги для цього питання!)
~
) висвітлено у розділі Як linux обробляє декілька розділювачів шляхів (/ home //// username /// file) . Найближчим до нормативного посилання буде специфікація POSIX або Single Unix - непросте зчитування.