Estou escrevendo uma biblioteca para manipulação de strings de caminho Unix. Sendo esse o caso, preciso entender alguns cantos obscuros da sintaxe com os quais a maioria das pessoas não se preocuparia.
Por exemplo, o melhor que eu posso dizer, parece que foo/bar
e foo//bar
ambos apontam para o mesmo lugar.
Além disso, ~
geralmente representa o diretório inicial do usuário, mas e se ele aparecer no meio de um caminho? O que acontece depois?
Essas e várias dezenas de outras perguntas obscuras precisam ser respondidas se eu escrever um código que lide com todos os casos possíveis corretamente. Alguém sabe de uma referência definitiva que explique as regras de sintaxe exata para este material?
(Infelizmente, pesquisar termos como "Sintaxe do caminho Unix" aparece um milhão de páginas discutindo a $PATH
variável ... Caramba, estou até lutando para encontrar tags adequadas para essa pergunta!)
~
) é abordada em Como o linux lida com vários separadores de caminho (/ home //// nome_do_usuário /// arquivo) . A coisa mais próxima de uma referência normativa seria a especificação POSIX ou Single Unix - não é uma leitura fácil.