WikiDer > Путь (вычисления)
эта статья нужны дополнительные цитаты для проверка. (Июль 2008 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
А дорожка, общий вид имя из файл или каталог, указывает уникальное местоположение в файловая система. Путь указывает на расположение файловой системы, следуя иерархии дерева каталогов, выраженной в нить из символы в котором компоненты пути, разделенные символом-разделителем, представляют каждый каталог. Ограничивающий символ чаще всего слэш ("/"), обратная косая черта символ ("") или двоеточие (":"), хотя некоторые операционные системы может использовать другой разделитель. Пути широко используются в Информатика для представления отношений каталог / файл, общих в современных операционных системах, и необходимы при построении Единые указатели ресурсов (URL-адреса). Ресурсы могут быть представлены либо абсолютный или родственник пути.
История
Мультики Впервые представила иерархическую файловую систему с каталогами (разделенными знаком ">") в середине 1960-х годов.[1]
Около 1970 г. Unix ввел символ косой черты ("/") в качестве разделителя каталогов.
В 1981 году вышла первая версия Microsoft ДОС был выпущен. MS-DOS 1.0 не поддерживает файловые каталоги. Кроме того, основная часть служебных команд, поставляемых с MS-DOS 1.0, поступила из IBM и в их синтаксисе командной строки в качестве префикса «переключателя» использовалась косая черта. Например, dir / w
управляет реж
с опцией формата широкого списка.
Это использование косой черты все еще можно найти в командном интерфейсе в разделе Майкрософт Виндоус. В отличие от этого, в Unix в качестве префикса переключателя командной строки используется тире («-»).
Когда поддержка каталогов была добавлена в MS-DOS в версии 2.0, "/" оставался в качестве символа префикса переключателя для обратной совместимости. Microsoft выбрала символ обратной косой черты («») в качестве разделителя каталогов, который похож на символ косой черты, хотя более современные версии Windows не зависят от косой черты, что позволяет смешивать оба типа косой черты в пути.[2]
Абсолютные и относительные пути
An абсолютный или полный путь указывает на одно и то же место в файловой системе, независимо от текущего рабочий каталог. Для этого он должен включать корневая директория.
Напротив, родственник путь начинается с некоторого заданного рабочего каталога, что позволяет избежать необходимости указывать полный абсолютный путь. А имя файла можно рассматривать как относительный путь на основе текущего рабочего каталога. Если рабочий каталог не является файлом родительский каталог, а файл не найден ошибка будет результатом, если к файлу обращаются по его имени.
Представления путей операционной системой и оболочкой
Операционная система | Оболочка | Корень каталог | Каталог разделитель | Текущий каталог | Родитель каталог | Главная каталог | Примеры |
---|---|---|---|---|---|---|---|
Unix-подобный Операционные системы (вкл. macOS) | Оболочка Unix | / | / | . | .. | ~ | /home/user/docs/Letter.txt ./inthisdir ../../Великий предок ~ / .rcinfo |
ДОС | COMMAND.COM | [буква диска:]\ или \\[имя сервера]\[объем]\ | \ | . | .. | C: ПОЛЬЗОВАТЕЛЬ ДОКУМЕНТЫ LETTER.TXT A: PICTURE.JPG SERVER01 USER DOCS LETTER.TXT | |
OS / 2 | cmd.exe | [буква диска:]\ или \\[имя сервера]\[объем]\ | / или \ | . | .. | C: пользователь docs Letter.txt A: Picture.jpg СЕРВЕР01 ПОЛЬЗОВАТЕЛЬ документы Letter.txt | |
Microsoft Windows | cmd.exe | \ (относительно корня текущего рабочего каталога)или [буква_диска]:\ или \\[сервер]\[Sharename]\ или \\?\[drive_spec]:\ или \\?\[сервер]\[Sharename]\ или ? UNC [сервер]\[Sharename]\ или \\.\[физическое_устройство]\ | / или \ | . | .. [3] | C: пользователь docs Letter.txt /user/docs/Letter.txt C: Letter.txt Server01 пользователь docs Letter.txt ? UNC Server01 пользователь docs Letter.txt ? C: user docs Letter.txt C: user docs somefile.ext:альтернативное имя потока ./inthisdir ../../Великий предок | |
Windows PowerShell | [буква диска:]/ или [название диска:]\ или \\[имя сервера]\ или
| / или \ | . | .. | ~ | C: пользователь docs Letter.txt C: пользователь / документы Letter.txt Server01 пользователь docs Letter.txt cd ~ Рабочий стол
| |
ТОП-20 | DCL | [имя устройства:] | . | PS: | |||
RSX-11 | MCR | [имя устройства:] | DR0: [30,12] LETTER.TXT; 4 | ||||
OpenVMS | DCL | [имя устройства:][000000] или
| . | [] | [-] | ВХОД SYS $: | SYS $ SYSDEVICE: [USER.DOCS] PHOTO.JPG
|
Классический Mac OS | [название тома или диска]: | : | : | :: | Macintosh HD: Документы: Letter : fileincurrentdir :: fileinparent ::: fileingrandparent | ||
ProDOS | AppleSoft BASIC | /[название тома или диска]/ | / | /SCHOOL.DISK/APPLEWORKS/MY.REPORT
| |||
AmigaOS | Amiga CLI / AmigaShell | [диск, том, устройство или присвоить имя]: | / | "" (пустой строкой) | / | Верстак: Утилиты / MultiView DF0: S / Последовательность запуска S: Последовательность запуска TCP: en.wikipedia.com/80 | |
ОС RISC | ShellCLI | [тип fs [#option]:] [: номер привода или имя диска.]$ примечание: &,% и @ также могут использоваться для ссылки на корень | . | @ | ^ | & | ADFS :: MyDrive. $. Documents.Letter Сеть # MainServer :: DataDrive. $. Main.sy10823 LanMan :: WindowsC. $. Pictures.Japan / gif NFS: &.! Выбор ADFS:%. IfThere @ .inthisdir ^. ^. прапрадедушка Когда монтируются файловые системы с расширениями файлов, |
ОС Symbian | Файловый менеджер | \ | \ | пользователь docs Letter.txt | |||
Домен / ОС | Оболочка |
| / | . | \ | ~ | //node/home/user/docs/Letter.txt ./inthisdir Великий предок ~ rcinfo |
MenuetOS | CMD | / | / | ||||
Stratus VOS | Командная строка VOS переводчик | %[имя_системы]#[имя_модуля]> | > | < | % sysname # module1> SubDir> AnotherDir | ||
Без остановки Ядро | TACL Тандем Продвинутый Командный язык | Нет корня | . | нет родителей каталог | NODE. $ DISK.SUBVOL.FILE NODE. $ DEVICE NODE. $ DEVICE. # SUBDEV.QUALIFIER | ||
CP / M | КПК | [буква диска:] | нет поддержки каталогов, только пользовательские области 0 – F | A: LETTER.TXT | |||
GS / OS | : [название тома]: или .[имя устройства]: или [префикс]: примечание: префикс может быть числом (0–31), | : или / | @ | : Приложения: Platinum.Paint: Platinum.Paint *: Система: Finder .APPLEDISK3.5B / файл |
Японская и корейская версии Windows часто могут отображать '¥'персонаж или'₩'вместо разделителя каталогов. В таких случаях код обратной косой черты отображается как эти символы. В очень ранних версиях MS-DOS обратная косая черта заменялась этими глифами на дисплее, чтобы их можно было отображать программами, которые понимали только 7-битные ASCII (другие символы, такие как квадратные скобки, также были заменены, см. ISO 646, Кодовая страница Windows 932 (японский Shift JIS), и Кодовая страница 949 (корейский)). Хотя даже первая версия Windows поддерживала 8-битную ISO-8859-1 набор символов, который имеет знак йены на U + 00A5, и современные версии Windows поддерживают Unicode со знаком «Вон» на U + 20A9, большая часть программного обеспечения будет продолжать отображать обратную косую черту в файлах ASCII таким образом, чтобы сохранить обратную совместимость.[4]
Mac OS Xкак производная от UNIX, внутренне использует пути UNIX. Однако, чтобы сохранить совместимость для программного обеспечения и удобство для пользователей, многие части графического интерфейса пользователя переключают "/", введенные пользователем, на ":" внутри, и переключают их обратно при отображении имен файлов (":", введенное пользователем, также изменяется в "/", но обратного перевода не происходит).
Пути в языках программирования
В языках программирования также используются пути. Например: при открытии файла. Большинство языков программирования используют представление пути к базовой операционной системе:
uxFile = fopen ("проект / readme.txt", "r")
winFile = fopen ("C: Program Files bin config.bat", "r")
Такой прямой доступ к путям операционной системы может затруднить переносимость программ. Для поддержки переносимых программ Ява использует File.separator чтобы различать пути, разделенные / и . Семя7 имеет другой подход к представлению пути. В Seed7 все пути используют соглашение о путях Unix, независимо от операционной системы. Под окнами выполняется сопоставление (например: Путь / c / users отображается на c: пользователи).
Универсальное соглашение об именах
Microsoft Windows UNC, Короче для Универсальное соглашение об именах или Единое соглашение об именах, задает общий синтаксис для описания расположения сетевого ресурса, такого как общий файл, каталог или принтер. Синтаксис UNC для систем Windows имеет общую форму:
Имя_компьютера SharedFolder Resource
Microsoft часто называет это "сетевой путь".
Некоторые интерфейсы Microsoft Windows также позволяют или требуют синтаксиса UNC для WebDAV общий доступ, а не URL-адрес. Синтаксис UNC расширен[5] с дополнительными компонентами для обозначения использования SSL и номера порта TCP / IP, URL-адрес WebDAV http [s]: // Имя хоста [: Порт] / SharedFolder / Ресурс
становится
HostName [@SSL] [@ Port] SharedFolder Resource
При удаленном просмотре «SharedFolder» может иметь имя, отличное от того, что программа на сервере видит при открытии « SharedFolder». Вместо этого имя SharedFolder состоит из произвольного имени, присвоенного папке при определении ее «совместного использования».
Некоторые интерфейсы Microsoft Windows также принимают "Long UNC":
? UNC имя_компьютера SharedFolder Resource
Microsoft Windows использует следующие типы путей:
- локальная файловая система (LFS), например
C: Файл
- универсальное соглашение об именах (UNC), например
Сервер Том Файл
или же /<имя интернет-ресурса> [ Имя каталога]
(по крайней мере, в Windows 7 и новее) - "длинный" путь к устройству, например
? C: Файл
или? UNC Сервер Том Файл
.[6] Этот путь указывает на пространство имен локального файла и\\.\
аналогичен тому, который указывает на локальное пространство имен устройства DOS. Этот формат также является «исходным» или «неинтерпретируемым» путем, поскольку он отправляет пути прямо в файловую систему без преобразования / к \ и интерпретируя такие имена, как ...[7] - Диспетчер объектов Windows NT
\\??\
пути с префиксом (глобальное пространство имен DOS).[8][9]
В версиях Windows до Windows XP только API, принимающие «длинные» пути к устройствам, могли принимать более 260 символов.
В ракушка в Windows XP и Виндоус виста, explorer.exe, позволяет использовать имена путей длиной до 248 символов.[нужна цитата]
Поскольку UNC начинаются с двух обратных косых черт, обратная косая черта также используется для экранирования строк и в обычные выражения, это может привести к крайним случаям синдром наклоненной зубочистки: экранированная строка для регулярного выражения, соответствующего UNC, начинается с 8 обратных косых черт - \\\\\\\\
- потому что и строка, и регулярное выражение требуют экранирования. Это можно упростить, используя сырые струны, как в C # @"\\\\"
или Python р''
, или литералы регулярных выражений, как в Perl qr {}
.
Определение пути POSIX
В большинстве Unix-подобных систем используется аналогичный синтаксис.[10]POSIX позволяет обрабатывать путь, начинающийся с двух косых черт, способом, определяемым реализацией,[11]хотя в других случаях системы должны рассматривать несколько слэшей как одиночные.[12]Многие приложения в Unix-подобных системах (например, scp, rcp и rsync) используйте определения ресурсов, такие как:
имя хоста: / путь к каталогу / ресурс
или как URL-адреса с именем службы (здесь smb):
smb: // имя хоста / путь к каталогу / ресурс
пример
Стиль Unix
В следующем рабочем примере обсуждается поведение Unix-стиль файловая система как это будет выглядеть из терминала или приложения терминала (окно командной строки):
Прикреплен к текущему рабочему каталогу (cwd):
/ пользователи / отметка /
Кто-то хочет изменить текущий рабочий каталог на:
/ пользователи / отметка / bobapples
В тот момент относительный путь для желаемого каталог можно представить как:
./bobapples
или для краткости:
бобапли
и абсолютный путь к каталогу как:
/ пользователи / отметка / bobapples
Данный бобапли в качестве относительного пути к желаемому каталогу можно ввести в поле командная строка чтобы изменить текущий рабочий каталог на bobapples:
компакт диск бобапли
Две точки ("..") указывает вверх в иерархия, чтобы указать родительский каталог; одна точка (".") представляет сам текущий каталог. Оба могут быть компонентами сложного относительного пути (например,"../mark/./bobapples"), куда "."один или как первый компонент такого относительного пути представляет рабочий каталог. (С помощью "./foo"сослаться на файл"фу"в текущем рабочем каталоге иногда полезно отличить его от ресурса"фу"быть найденным в каталоге по умолчанию или другими способами; например, чтобы просмотреть определенную версию страница руководства вместо установленного в системе.)
MS-DOS / Microsoft Windows стиль
Эта секция нужны дополнительные цитаты для проверка. (Ноябрь 2020) (Узнайте, как и когда удалить этот шаблон сообщения) |
Вопреки распространенному мнению, Системный API Windows принимает косую черту, и поэтому все приведенные выше примеры Unix должны работать. Но многие приложения в Windows интерпретируют косую черту для других целей или рассматривают ее как недопустимый символ и, таким образом, требуют, чтобы вы вводили обратную косую черту, особенно cmd.exe оболочка (часто называемая «терминалом», поскольку она обычно запускается в окне терминала). Обратите внимание, что для Windows доступны многие другие оболочки, например tcsh и Windows PowerShell, разрешите косую черту.
Кроме того, "" указывает не на один корень, а на корень "текущего диска". Указание файла на диске, отличном от текущего, требует префикса буквы диска и двоеточия. Никакой двусмысленности не возникает, потому что двоеточие не является допустимым символом в имени файла MS-DOS, и поэтому в текущем каталоге не может быть файла с именем «A:».
Имена UNC (любой путь, начинающийся с \\?\) не поддерживают косую черту.[13]
Следующие примеры показывают MS-DOS/Windowsпути в стиле с обратной косой чертой для соответствия наиболее распространенному синтаксису:
А: Temp File.txt
Этот путь указывает на файл с именем File.txt, расположенный в каталоге Темп, который, в свою очередь, находится в корневом каталоге диска А:.
C: .. File.txt
Этот путь относится к файлу с именем File.txt находится в родительском каталоге текущего каталога на диске C:.
Папка SubFolder File.txt
Этот путь обозначает файл с именем File.txt находится в Подпапка каталог, который, в свою очередь, находится в Папка каталог, который находится в текущем каталоге текущего диска (поскольку этот пример не дает спецификации диска).
File.txt
Этот довольно простой путь указывает на файл с именем File.txt
расположен в текущем каталоге (поскольку в пути нет спецификации каталога) на текущем диске (поскольку спецификация диска отсутствует).
. COM1
Этот путь относится к первому Серийный порт (COM1).
C: >более < C: /Windows/system.ini
; для поддержки 16-битных приложений[386Enh]Woafont=dosapp.fonEGA80WOA.FON=EGA80WOA.FONEGA40WOA.FON=EGA40WOA.FONCGA80WOA.FON=CGA80WOA.FONCGA40WOA.FON=CGA40WOA.FON...
В этом примере в качестве разделителя каталогов используется путь, содержащий косую черту. Команда перенаправляет содержимое файла в более
команда.
E: >реж "/ Папка / Подпапка /" / Q Том на диске E - данные Серийный номер тома 07BE-0B10. Каталог E: Folder SubFolder18 октября 2008 г., 08:15 ДОМЕН пользователь.18 октября 2008 г., 08:15 ДОМЕН пользователь ..18 октября 2008 г., 08:15 ДОМЕН пользователь File.txt 1 Файл (ы) 8 байт 2 Dir (s) 19 063 000 байт бесплатно
Путь, содержащий косую черту, часто нужно заключать в двойные кавычки, чтобы устранить неоднозначность. переключатели командной строки.
- примечание: CD не работает таким образом:
Компакт-диск «[буква диска]: / Program Files» будет работать только из корневого ([буква диска]: ) каталога. Похоже, что все косые черты обрабатываются так же, как. .[нужна цитата]
- исключение: используйте переключатель / D, чтобы изменить текущий диск в дополнение к изменению текущего каталога для диска.
Например:
Компакт-диск "C:. Program Files"
работает так же, как
Компакт-диск "C: / Program Files"
Также из корневой папки:
Компакт-диск "C:. Program Files. Internet Explorer"
будет рассматриваться так же, как
Компакт-диск "C: / Program Files / Internet Explorer"
Если относительный путь к имени каталога, указанному с помощью косой черты, отсутствует, вы получите следующую ошибку:
Система не может найти указанный путь.
Для установки переменных среды иногда необходимо указать путь, не содержащий пробелов, например % JAVA_HOME%
определенный как «C: Program Files Java ...» может вызывать остановку скриптов при обнаружении пробела в имени пути. Чтобы получить восьмизначное имя, которое Windows назначает любому каталогу для подстановки в переменных среды, используйте команду списка каталогов с параметром / x на один уровень выше целевого каталога. Например, следующее даст вам восьмизначное имя для всех каталогов непосредственно в корневом каталоге:
C: >реж /Икс
Смотрите также
- Базовое имя
- Файл устройства
- Dirname
- Распределенная файловая система (DFS)
- Имя файла
- Стандарт иерархии файловой системы (FHS)
- Полное имя файла
- ПУТЬ (переменная)
- Единый указатель ресурсов (URL)
Рекомендации
Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.
- ^ Daley, R.C .; Нойман, П. (1965). «Файловая система общего назначения для вторичного хранилища». AFIPS Труды совместной компьютерной конференции. Часть I: 213–229. Дои:10.1145/1463891.1463915.
- ^ https://www.howtogeek.com/181774/why-windows-uses-backslashes-and-everything-else-uses-forward-slashes/
- ^ "CD". Команды Windows: Windows Server. Документы Microsoft. Получено 14 июля 2019.
- ^ Сортировка всего: Когда обратная косая черта не является обратной?
- ^ "Функция DavGetHTTPFromUNCPath". WebDAV: Windows. Документы Microsoft. серии. Получено 14 июля 2019.
- ^ "Форматы путей к файлам в системах Windows". Файловый и потоковый ввод-вывод: .NET. Документы Microsoft. Получено 14 июля 2019.
- ^ «Именование файлов, путей и пространств имен - приложения Win32». docs.microsoft.com.
- ^ "winapi - Есть ли разница между путями ?? и ? ?". Переполнение стека.
- ^ "Префиксы пути ?? и ? ". Переполнение стека.
- ^ Определение UNC от ComputerLanguage.com
- ^ Спецификация разрешения имени пути POSIX
- ^ Определение пути POSIX
- ^ «Именование файлов, путей и пространств имен». Локальные файловые системы: Windows. Документы Microsoft. Получено 14 июля 2019.
внешняя ссылка
- Определение пути - Информационный проект Linux (LINFO)
- Именование файлов, путей и пространств имен - Локальные файловые системы: Windows: Документы Microsoft