Путь к файлу
Путь (англ. path) — набор символов, показывающий расположение файла или каталога в файловой системе.
В операционных системах UNIX разделительным знаком при записи пути является «/». В Windows — «\». Эти знаки служат для разделения названия каталогов, составляющих путь к файлу.
Например, в следующей записи адресации /home/user_viki/foo/bar.txt
часть bar.txt
— это имя файла, а /home/user_viki/foo
— путь к нему.
Путь может быть абсолютным или относительным. Полный или абсолютный путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущего рабочего каталога или других обстоятельств. Полный путь всегда начинается с корневого каталога. Относительный путь представляет собой путь по отношению к текущему рабочему каталогу пользователя или активных приложений.
Для эффективного поиска файлов UNIX-подобные операционные системы, как правило, имеют системную переменную $PATH
в командной оболочке (например, sh
), которая задает перенаправления к важнейшим исполняемым файлам. Узнать значение этой переменной можно с помощью команды echo $PATH
или аналогичной.
Представления пути по операционной системе и оболочке
Операционная система | Оболочка | Корневой каталог | Разделитель каталогов | Текущий каталог | Родительский каталог | Домашний каталог | Примеры |
---|---|---|---|---|---|---|---|
POSIX Systems/UNIX-подобная ОС | Командная оболочка UNIX | / |
/ |
. |
.. |
~ |
/home/user/docs/Letter.txt |
DOS | COMMAND.COM | [буква диска:]\ или \\[имя сервера]\ |
\ |
. |
.. |
C:\USER\DOCS\LETTER.TXT A:PICTURE.JPG \\SERVER01\USER\DOCS\LETTER.TXT | |
OS/2 | cmd.exe | [буква диска:]\ |
/ или \ |
. |
.. |
C:\user\docs\Letter.txt
| |
Microsoft Windows | cmd.exe | [буква диска:]/ или [буква диска:]\ или\\[имя сервера]\ примечание: для команды CD, / treated as relative path (same as [буква диска:].\) |
/ или \ (примечание: для команды CD, / treated as relative path (same as .\)) |
. |
.. |
C:\user\docs\Letter.txt
| |
Microsoft Windows | Windows PowerShell | [имя диска:]/ или [имя диска:]\ или \\[имя сервера]\ или
|
/ или \ |
. |
.. |
~ |
C:\user\docs\Letter.txt
|
TOPS-20 | DCL | [имя устройства:] |
. |
PS:<USER.DOCS>LETTER.TXT,4 | |||
RSX-11 | DCL | [имя устройства:] |
DR0:[30,12]LETTER.TXT;4 | ||||
OpenVMS | DCL | [имя устройства:] или
|
. |
[] |
[-] |
SYS$LOGIN: |
SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG
|
Classic Mac OS | [volume or drive name]: |
: |
: |
:: |
Macintosh HD:Documents:Letter | ||
ProDOS | AppleSoft BASIC | /[volume or drive name]/ |
/ |
/SCHOOL.DISK/APPLEWORKS/MY.REPORT
| |||
AmigaOS | Amiga CLI / AmigaShell | [drive, volume, device or assign name]: |
/ |
"" (empty string) |
/ |
Workbench:Utilities/MultiView
| |
RISC OS | Task window | [fs type[#option]:][:drive number or disc name.]$
примечание: &, % and @ can also be used to reference the root of the current user, the library and the current (working) directory respectively. |
. |
@ |
^ |
& |
ADFS::MyDrive.$.Documents.Letter
|
Symbian OS | File manager | \ |
\ |
\user\docs\Letter.txt | |||
Domain/OS | Shell | // (root of domain)
|
/ |
. |
\ |
~ |
//node/home/user/docs/Letter.txt ./inthisdir \\greatgrandparent ~rcinfo |
MenuetOS | CMD | / |
/ |
||||
Stratus VOS | интерпретатор командной строки VOS | %[имя_системы]#[имя_модуля]> |
> |
< |
%sysname#module1>SubDir>AnotherDir | ||
NonStop Kernel | TACL Tandem Advanced Command Language | Нет корня | . |
Нет родительского каталога | \NODE.$DISK.SUBVOL.FILE
| ||
CP/M | CCP | [буква диска:] |
Нет подкаталогов | Нет подкаталогов | Нет родителей | Нет подкаталогов | A:LETTER.TXT |
GS/OS | :[имя тома]: или .[имя устройства]: или [префикс]:
прим.: префикс может быть числом (0-31), |
: или / |
@ |
:Apps:Platinum.Paint:Platinum.Paint *:System:Finder .APPLEDISK3.5B/file |
UNC в Windows
Общее соглашение об именах (англ. Uniform Naming Convention) или универсальное соглашение об именовании (universal naming convention), UNC — соглашение об именовании файлов и других ресурсов, дающее машинонезависимое определение местоположения ресурса[1].
Имя, соответствующее соглашению об универсальном назначении имен, полное имя ресурса в сети, включающее имя сервера и имя совместно используемого ресурса (принтера, каталога или файла); для каталогов или файлов могут также включать относительный путь.
Синтаксис UNC-пути к принтеру следующий: \\Сервер\СетевойПринтер
, где Сервер
— сетевое имя компьютера, СетевойПринтер
— это сетевое имя общего принтера на этом компьютере.
Синтаксис UNC-пути к каталогу или файлу следующий: \\Сервер\СетевойКаталог[\ОтносительныйПуть]
, где Сервер
— сетевое имя компьютера, СетевойКаталог
— это сетевое имя общего каталога на этом компьютере, а ОтносительныйПуть
— путь к каталогу или файлу из общего каталога.
СетевойКаталог
не обязательно называется так же, как ассоциированный с ним каталог на сервере, имя даётся в ходе открытия общего доступа к каталогу в файловой системе компьютера.
Некоторые API-вызовы в Microsoft Windows поддерживают использование так называемых Long UNC или UNCW: \\?\UNC\Сервер\СетевойКаталог[\ОтносительныйПуть]
или \\?\Диск:[\Каталог][\Файл]
, где Диск
— буква диска, Каталог
— имя каталога на диске, Файл
— имя файла в каталоге или на диске.
В версиях Windows, предшествовавших Windows XP, только API-вызовы, использующие Long UNC, могли использовать пути длиной более 260 символов.
Всего в Microsoft Windows используются следующие типы путей:
- LFS (англ. local file system) — имена в локальной файловой системе, например:
C:\Folder\File
. - UNC — сетевые имена, например:
\\Server\SharedFolder\Folder\File
. - Long UNC или UNCW — длинные имена, например:
\\?\UNC\Server\SharedFolder\Folder\File
или\\?\C:\Folder\File
.
Литература
Mitch Tulloch, Ingrid Tulloch. Microsoft Encyclopedia of Networking, Second Edition. — ISBN 0-7356-1378-8.