Что такое "канонический путь"?
Это вопрос теории. Я искал в интернете без удовлетворительной удачи, я просто хочу понять, что это за жаргон. Я видел примеры Java, JSON и т. д., Но я не мог найти в Google ни здесь, ни в StackOverflow простого объяснения, никакого кода не требуется =P
таким образом, абсолютный путь-это способ добраться до определенного файла или местоположения, описывающего полный маршрут к нему, полный путь, и он зависит от ОС (например, абсолютные пути для Windows и Linux different) относительный путь это маршрут к файлу или местоположению, которое он описал из текущего местоположения .. (две точки), указывающие на более высокий уровень в дереве каталогов. Это было ясно мне уже несколько лет.
при поиске я даже видел, что есть канонизированные файлы тоже!
Все, что я знаю, это каноническое означает что-то вроде "по правилам" или что-то в этом роде.
может кто-нибудь, пожалуйста, просветите меня в термах теории о канонических вещах, пожалуйста? =) Спасибо!!
PD (так что это было не просто случайное имя Ubuntu в конце концов) XD
PD2 к сожалению, я не могу дать ответ всем, я дал его тому, кто помог мне больше всего понять концепцию, но спасибо большое всем =)
4 ответов:
весь смысл создания что-нибудь "каноническое", так что вы можете сравнить две вещи. Например, оба
../../here/bar/xи./test/../../bar/xможет ссылаться на одно и то же место, но вы не можете сделать текстовое сравнение по двум путям. Однако, если вы превратите их в их каноническое представление, они оба станут../bar/x, и мы видим, что они на самом деле относятся к одному и тому же.короче говоря, это часто бывает, что у вас есть много способов ссылаться на одну вещь, и в этом случае вы можете быть в состоянии определить каноническое представление что это уникальный и который позволяет получить ручку на коллекции таких вещей.
(Если вы ищете больше примеров, вся математика полна "канонических" конструкций для всех видов объектов и очень много с той же целью. Может быть, это статья в Википедии может обеспечить некоторые дополнительные направления.)
хороший способ определить канонический путь будет:
the shortest absolute path(коротко, В смысле длины строки).Это пример разницы между абсолютным путем и каноническим путем:
- абсолютный путь:
C:\abc\..\abc\file.txt
канонический путь:C:\abc\file.txt
что канонический путь (или Его отличие от абсолютного пути) зависит от системы.
Обычно, если (полный) путь содержит псевдонимы, ярлыки или символические ссылки, канонический путь разрешает все это в фактические каталоги, на которые они ссылаются.
Пример: если/bin/aЭто ссылка sym, вы можете найти ее в любом месте, где вы запрашиваете абсолютный путь, например, изjava. io. File#getAbsolutePath в то время как реальный файл (т. е. фактическая цель ссылки) т. е.usr/local/bin/aбудет вернуться как канонический путь, например,Ява.Ио.Файл#getCanonicalPath
большинство проблем с каноническими путями возникают, когда вы передаете имя dir, а не файл. Для файла, если мы предоставляем абсолютный путь, который также является каноническим путем. Но для dir это означает пропуск последнего"/". Например," /var/tmp/foo "- это канонический путь, а" /var/tmp/foo/ " - нет.
Comments