fbpx
Wikipedia

Path (computing)

A path (or filepath, file path, pathname, or similar) is a string of characters used to uniquely identify a location in a directory structure. It is composed by following the directory tree hierarchy in which components, separated by a delimiting character, represent each directory. The delimiting character is most commonly the slash ("/"), the backslash character ("\"), or colon (":"), though some operating systems may use a different delimiter. Paths are used extensively in computer science to represent the directory/file relationships common in modern operating systems and are essential in the construction of Uniform Resource Locators (URLs). Resources can be represented by either absolute or relative paths.

History edit

Multics first introduced a hierarchical file system with directories (separated by ">") in the mid-1960s.[1]

Around 1970, Unix introduced the slash character ("/") as its directory separator.

In 1981, the first version of Microsoft DOS was released. MS-DOS 1.0 did not support file directories. Also, a major portion of the utility commands packaged with MS-DOS 1.0 came from IBM and their command line syntax used the slash character as a 'switch' prefix. For example, dir /w runs the dir command with the wide list format option.

This use of slash can still be found in the command interface under Microsoft Windows. By contrast, Unix uses the dash ("-") character as a command-line switch prefix.

When directory support was added to MS-DOS in version 2.0, "/" was kept as the switch prefix character for backwards compatibility. Microsoft chose the backslash character ("\") as a directory separator, which looks similar to the slash character, though more modern version of Windows are slash-agnostic, allowing mixage of both types of slashes in a path.[2][3]

Absolute and relative paths edit

An absolute or full path points to the same location in a file system, regardless of the current working directory. To do that, it must include the root directory.

By contrast, a relative path starts from some given working directory, avoiding the need to provide the full absolute path. A filename can be considered as a relative path based at the current working directory. If the working directory is not the file's parent directory, a file not found error will result if the file is addressed by its name.

Base URL edit

A base URL is the consistent part of an API path, to which endpoint paths are appended.

Representations of paths by operating system and shell edit

Operating
system
Shell Root
directory
Directory
separator
Current
directory
Parent
directory
Home
directory
Examples
Unix-like OS
(incl. macOS)
Unix shell / / . .. ~ /home/user/docs/Letter.txt
./inthisdir
../../greatgrandparent
~/.rcinfo
DOS COMMAND.COM [drive letter:]\ or
\\[server name]\[volume]\
\ . .. C:\USER\DOCS\LETTER.TXT
A:PICTURE.JPG
\\SERVER01\USER\DOCS\LETTER.TXT
OS/2 cmd.exe [drive letter:]\ or
\\[server name]\[volume]\
/ or \ . .. C:\user\docs\Letter.txt
A:Picture.jpg
\\SERVER01\USER\docs\Letter.txt
Microsoft
Windows
cmd.exe \ (relative to current working directory root)
or [drive_letter]:\
or \\[server]\[sharename]\
or \\?\[drive_spec]:\
or \\?\UNC\[server]\[sharename]\
or \\.\[physical_device]\[4]
/ or \,

The Japanese edition uses ¥, as Path separator

. ..[5] C:\user\docs\Letter.txt
/user/docs/Letter.txt
C:\Letter.txt
\\Server01\user\docs\Letter.txt
\\?\UNC\Server01\user\docs\Letter.txt
\\?\C:\user\docs\Letter.txt
C:\user\docs\somefile.ext:alternate stream name
./inthisdir
../../greatgrandparent
Windows PowerShell [drive letter:]/ or [drive name:]\or
\\[server name]\ or

[PSSnapIn name]\[PSProvider name:][:PSDrive root]

/ or \ . .. ~ C:\user\docs\Letter.txt
C:\user/docs\Letter.txt
\\Server01\user\docs\Letter.txt
cd ~\Desktop

UserDocs:/Letter.txt
Variable:PSVersionTable
Registry::HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft.PowerShell.Security\Certificate::CurrentUser\

TOPS-20 DCL [device name:] . PS:<USER.DOCS>LETTER.TXT,4
RSX-11 MCR [device name:] DR0:[30,12]LETTER.TXT;4
OpenVMS DCL [device name:][000000] or

[NODE["accountname password"]]::[device name][000000]:

. [] [-] SYS$LOGIN: SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG

[]IN_THIS_DIR.COM;
[-.-]GreatGrandParent.TXT
SYS$SYSDEVICE:[.DRAFTS]LETTER.TXT;4
GEIN::[000000]LETTER.TXT;4
SYS$LOGIN:LOGIN.COM

Classic
Mac OS
[volume or drive name]: : : :: Macintosh HD:Documents:Letter
:fileincurrentdir
::fileinparent
:::fileingrandparent
ProDOS AppleSoft BASIC /[volume or drive name]/ / /SCHOOL.DISK/APPLEWORKS/MY.REPORT

FLIGHT.SIMULATOR,D2

AmigaOS Amiga CLI /
AmigaShell
[drive, volume, device or assign name]: / ""
(empty string)
/ Workbench:Utilities/MultiView
DF0:S/Startup-Sequence
S:Startup-Sequence
TCP:en.wikipedia.com/80
RISC OS ShellCLI [fs type[#option]:][:drive number or disc name.]$

note: &, % 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
Net#MainServer::DataDrive.$.Main.sy10823
LanMan::WindowsC.$.Pictures.Japan/gif
NFS:&.!Choices
ADFS:%.IfThere
@.inthisdir
^.^.greatgrandparent

When filesystems with filename extensions are mounted,
'.' characters are changed to '/', as in the Japan/gif example above.

Symbian OS File manager \ \ \user\docs\Letter.txt
Domain/OS Shell

// (root of domain)
/ (root of current node)

/ . \ ~ //node/home/user/docs/Letter.txt
./inthisdir
\\greatgrandparent
~rcinfo
MenuetOS CMD / /
Stratus VOS VOS command-line
interpreter
%[system_name]#[module_name]> > < %sysname#module1>SubDir>AnotherDir
NonStop
Kernel
TACL
Tandem Advanced
Command Language
No root . no parent
directory
\NODE.$DISK.SUBVOL.FILE
\NODE.$DEVICE
\NODE.$DEVICE.#SUBDEV.QUALIFIER
CP/M CCP [drive letter:] no directory support, just user areas 0–F A:LETTER.TXT
GS/OS :[volume name]: or .[device name]: or [prefix]:

note: prefix may be a number (0–31), * (boot volume) or @ (AppleShare home directory)

: or / @ :Apps:Platinum.Paint:Platinum.Paint
*:System:Finder
.APPLEDISK3.5B/file
OpenHarmony (incl. HarmonyOS) exec[6][7] hb set -root [ROOT_PATH]

hb set -p --product [PRODUCT_NAME]

> ./ ../ LOCAL>MEDIA_TYPE_>Download>Letter.txt

Japanese and Korean versions of Windows may often display the '¥' character or the '' character instead of the directory separator. In such cases the code for a backslash is being drawn as these characters. Very early versions of MS-DOS replaced the backslash with these glyphs on the display to make it possible to display them by programs that only understood 7-bit ASCII (other characters such as the square brackets were replaced as well, see ISO 646, Windows Codepage 932 (Japanese Shift JIS), and Codepage 949 (Korean)). Although even the first version of Windows supported the 8-bit ISO-8859-1 character set which has the Yen sign at U+00A5, and modern versions of Windows supports Unicode which has the Won sign at U+20A9, much software will continue to display backslashes found in ASCII files this way to preserve backwards compatibility.[8]

Mac OS X, as a derivative of UNIX, uses UNIX paths internally. However, to preserve compatibility for software and familiarity for users, many portions of the GUI switch "/" typed by the user to ":" internally, and switch them back when displaying filenames (a ":" entered by the user is also changed into "/" but the inverse translation does not happen).

Paths in programming languages edit

Programming languages also use paths. E.g.: When a file is opened. Most programming languages use the path representation of the underlying operating system:

 uxFile = fopen("project/readme.txt", "r") 
 winFile = fopen("C:\\Program Files\\bin\\config.bat", "r") 

This direct access to the operating system paths can hinder the portability of programs. To support portable programs Java uses File.separator to distinguish between / and \ separated paths. Seed7 has a different approach for the path representation. In Seed7 all paths use the Unix path convention, independent of the operating system. Under windows a mapping takes place (e.g.: The path /c/users is mapped to c:\users).

Universal Naming Convention edit

The Microsoft Windows UNC, short for Universal Naming Convention or Uniform Naming Convention, specifies a common syntax to describe the location of a network resource, such as a shared file, directory, or printer. The UNC syntax for Windows systems has the generic form:

\\ComputerName\SharedFolder\Resource 

Microsoft often refers to this as a "network path".

Some Microsoft Windows interfaces also allow or require UNC syntax for WebDAV share access, rather than a URL. The UNC syntax is extended[9] with optional components to denote use of SSL and TCP/IP port number, a WebDAV URL of http[s]://HostName[:Port]/SharedFolder/Resource becomes

\\HostName[@SSL][@Port]\SharedFolder\Resource 

When viewed remotely, the "SharedFolder" may have a name different from what a program on the server sees when opening "\SharedFolder". Instead, the SharedFolder name consists of an arbitrary name assigned to the folder when defining its "sharing".

Some Microsoft Windows interfaces also accept the "Long UNC":

\\?\UNC\ComputerName\SharedFolder\Resource 

Microsoft Windows uses the following types of paths:

  • local file system (LFS), such as C:\File
  • universal naming convention (UNC), such as \\Server\Volume\File or /<internet resource name>[\Directory name] (at least in Windows 7 and later)
  • "long" device path such as \\?\C:\File or \\?\UNC\Server\Volume\File.[10] This path points to the local file namespace and \\.\ is a similar one that points to the local DOS device namespace. This format is also the "raw" or "uninterpreted" path, since it sends paths straight to the file system without converting / to \ and interpreting names like ...[4]
  • Windows NT object manager \\??\-prefixed paths (global DOS namespace).[11][12]

In versions of Windows prior to Windows XP, only the APIs that accept "long" device paths could accept more than 260 characters.

The shell in Windows XP and Windows Vista, explorer.exe, allows path names up to 248 characters long.[citation needed]

Since UNCs start with two backslashes, and the backslash is also used for string escaping and in regular expressions, this can result in extreme cases of leaning toothpick syndrome: an escaped string for a regular expression matching a UNC begins with 8 backslashes – \\\\\\\\ – because the string and regular expression both require escaping. This can be simplified by using raw strings, as in C#'s @"\\\\" or Python's r'\\\\', or regular expression literals, as in Perl's qr{\\\\}.

POSIX pathname definition edit

Most Unix-like systems use a similar syntax.[13] POSIX allows treating a path beginning with two slashes in an implementation-defined manner,[14] though in other cases systems must treat multiple slashes as single slashes.[15] Many applications on Unix-like systems (for example, scp, rcp and rsync) use resource definitions such as:

hostname:/directorypath/resource 

or URI schemes with the service name (here 'smb'):

smb://hostname/directorypath/resource 

Example edit

Unix style edit

The following worked example discusses the behavior of a Unix-style file system as it would appear from a terminal or terminal application (command-line window):

Attached to a current working directory (cwd) of:

/users/mark/ 

One wants to change the current working directory to:

/users/mark/bobapples 

At that moment, the relative path for the desired directory can be represented as:

./bobapples 

or for short:

bobapples 

and the absolute path for the directory as:

/users/mark/bobapples 

Given bobapples as the relative path for the directory wanted, the following may be typed at the command prompt to change the current working directory to bobapples:

cd bobapples 

Two dots ("..") point upwards in the hierarchy, to indicate the parent directory; one dot (".") represents the current directory itself. Both can be components of a complex relative path (e.g., "../mark/./bobapples"), where "." alone or as the first component of such a relative path represents the working directory. (Using "./foo" to refer to a file "foo" in the current working directory can sometimes usefully distinguish it from a resource "foo" to be found in a default directory or by other means; for example, to view a specific version of a manual page instead of the one installed in the system.)

MS-DOS/Microsoft Windows style edit

 
Screenshot of a Windows command shell showing filenames in a directory

Contrary to popular belief, the Windows system API accepts slash, and thus all the above Unix examples should work. But many applications on Windows interpret a slash for other purposes or treat it as an invalid character, and thus require you to enter backslash – notably the cmd.exe shell (often called the "terminal" as it typically runs in a terminal window). Note that many other shells available for Windows, such as tcsh and Windows PowerShell, allow the slash.

In addition "\" does not indicate a single root, but instead the root of the "current disk". Indicating a file on a disk other than the current one requires prefixing a drive letter and colon. No ambiguity ensues, because colon is not a valid character in an MS-DOS filename, and thus one cannot have a file called "A:" in the current directory.

UNC names (any path starting with \\?\) do not support slashes.[4]

The following examples show MS-DOS/Windows-style paths, with backslashes used to match the most common syntax:

A:\Temp\File.txt 

This path points to a file with the name File.txt, located in the directory Temp, which in turn is located in the root directory of the drive A:.

C:..\File.txt 

This path refers to a file called File.txt located in the parent directory of the current directory on drive C:.

Folder\SubFolder\File.txt 

This path denotes a file called File.txt located in SubFolder directory which in turn is located in Folder directory which is located in the current directory of the current drive (since this example gives no drive-specification).

File.txt 

This rather simple path points to a file named File.txt located in the current directory (since the path lacks a directory-specification) on the current drive (since no drive specification is present).

\\.\COM1 

This path refers to the first serial port (COM1).

C:\>more < C:/Windows/system.ini 
; for 16-bit app support [386Enh] woafont=dosapp.fon EGA80WOA.FON=EGA80WOA.FON EGA40WOA.FON=EGA40WOA.FON CGA80WOA.FON=CGA80WOA.FON CGA40WOA.FON=CGA40WOA.FON ... 

This example uses a path containing slashes as directory separator. The command redirects the content of the file to the more command.

E:\>dir "/Folder/SubFolder/" /Q  Volume in drive E is Data  Volume Serial Number is 07BE-0B10  Directory of E:\Folder\SubFolder 18 October 2008 08:15 AM <DIR> DOMAIN\user . 18 October 2008 08:15 AM <DIR> DOMAIN\user .. 18 October 2008 08:15 AM <DIR> DOMAIN\user File.txt  1 File(s) 8 bytes  2 Dir(s) 19,063,000 bytes free 

A path containing forward slashes often needs to be surrounded by double quotes to disambiguate it from command-line switches.

  • note: CD does not work this way:

CD "[drive letter]:/Program Files" will only work from the root ([drive letter]:\) directory. This appears to treat all forward slashes the same as .\. [citation needed]

  • exception: Use the /D switch to change current drive in addition to changing current directory for a drive.

For example:

CD "C:.\Program Files" 

works the same as

CD "C:/Program Files" 

Also, from a root folder:

CD "C:.\Program Files.\Internet Explorer" 

would be treated the same as

CD "C:/Program Files/Internet Explorer" 

If there is no relative path to the directory name specified with forward slashes you will get the following error:

The system cannot find the path specified. 

For setting environment variables, it is sometimes necessary to provide a path that does not contain spaces in it, for instance %JAVA_HOME% defined as "C:\Program Files\Java..." can cause scripts to halt when they encounter the space in the path name. To get the eight-character name Windows assigns to any directory for substitution in environment variables, use the directory listing command with the /x option one level up from the target directory. For instance, the following will get you the eight character name for all directories directly under root:

C:\>dir /x 

See also edit

References edit

  1. ^ Daley, R.C.; Neumann, P.G. (1965). "A general-purpose file system for secondary storage". Proceedings of the November 30--December 1, 1965, fall joint computer conference, Part I on XX - AFIPS '65 (Fall, part I). Vol. Part I. pp. 213–229. doi:10.1145/1463891.1463915. S2CID 16236414.
  2. ^ "Why Windows Uses Backslashes and Everything else Uses Forward Slashes". 10 February 2014.
  3. ^ "Why is the DOS path character ""?". 24 June 2005.
  4. ^ a b c "Naming Files, Paths, and Namespaces". Microsoft Docs. 15 December 2022.
  5. ^ "cd". Windows Commands : Windows Server. Microsoft Docs. 3 February 2023. Retrieved 4 October 2023.
  6. ^ "Introduction to the Shell". GitHub. OpenAtom OpenHarmony. Retrieved 13 March 2024.
  7. ^ "exec". GitHub. OpenAtom OpenHarmony. Retrieved 14 March 2024.
  8. ^ "When is a backslash not a backslash?". Sorting it all Out.
  9. ^ "DavGetHTTPFromUNCPath function". WebDAV : Windows. Microsoft Docs. series. 13 October 2021. Retrieved 4 October 2023.
  10. ^ "File path formats on Windows systems". File and Stream I/O : .NET. Microsoft Docs. Retrieved 14 July 2019.
  11. ^ "winapi - Is there a difference between \??\ and \\?\ paths?". Stack Overflow.
  12. ^ "Path prefixes \??\ and \\?\". Stack Overflow.
  13. ^ "UNC Definition". ComputerLanguage.com.
  14. ^ "POSIX pathname resolution specification".
  15. ^ "POSIX pathname definition".

External links edit

  • Path Definition - The Linux Information Project (LINFO)
  • Naming Files, Paths, and Namespaces - Local File Systems : Windows : Microsoft Docs

path, computing, environment, variable, path, variable, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sources, path, comput. For the environment variable see PATH variable This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Path computing news newspapers books scholar JSTOR July 2008 Learn how and when to remove this message A path or filepath file path pathname or similar is a string of characters used to uniquely identify a location in a directory structure It is composed by following the directory tree hierarchy in which components separated by a delimiting character represent each directory The delimiting character is most commonly the slash the backslash character or colon though some operating systems may use a different delimiter Paths are used extensively in computer science to represent the directory file relationships common in modern operating systems and are essential in the construction of Uniform Resource Locators URLs Resources can be represented by either absolute or relative paths Contents 1 History 2 Absolute and relative paths 3 Base URL 4 Representations of paths by operating system and shell 5 Paths in programming languages 6 Universal Naming Convention 7 POSIX pathname definition 8 Example 8 1 Unix style 8 2 MS DOS Microsoft Windows style 9 See also 10 References 11 External linksHistory editMultics first introduced a hierarchical file system with directories separated by gt in the mid 1960s 1 Around 1970 Unix introduced the slash character as its directory separator In 1981 the first version of Microsoft DOS was released MS DOS 1 0 did not support file directories Also a major portion of the utility commands packaged with MS DOS 1 0 came from IBM and their command line syntax used the slash character as a switch prefix For example dir w runs the a href Dir command html title Dir command dir a command with the wide list format option This use of slash can still be found in the command interface under Microsoft Windows By contrast Unix uses the dash character as a command line switch prefix When directory support was added to MS DOS in version 2 0 was kept as the switch prefix character for backwards compatibility Microsoft chose the backslash character as a directory separator which looks similar to the slash character though more modern version of Windows are slash agnostic allowing mixage of both types of slashes in a path 2 3 Absolute and relative paths editAn absolute or full path points to the same location in a file system regardless of the current working directory To do that it must include the root directory By contrast a relative path starts from some given working directory avoiding the need to provide the full absolute path A filename can be considered as a relative path based at the current working directory If the working directory is not the file s parent directory a file not found error will result if the file is addressed by its name Base URL editA base URL is the consistent part of an API path to which endpoint paths are appended Representations of paths by operating system and shell editOperating system Shell Rootdirectory Directoryseparator Currentdirectory Parentdirectory Homedirectory Examples Unix like OS incl macOS Unix shell home user docs Letter txt inthisdir greatgrandparent rcinfo DOS COMMAND COM i drive letter i or i server name i i volume i C USER DOCS LETTER TXTA PICTURE JPG SERVER01 USER DOCS LETTER TXT OS 2 cmd exe i drive letter i or i server name i i volume i or C user docs Letter txtA Picture jpg SERVER01 USER docs Letter txt Microsoft Windows cmd exe relative to current working directory root or i drive letter i or i server i i sharename i or i drive spec i or UNC i server i i sharename i or i physical device i 4 or The Japanese edition uses the Korean version uses as Path separator 5 C user docs Letter txt user docs Letter txtC Letter txt Server01 user docs Letter txt UNC Server01 user docs Letter txt C user docs Letter txt span style white space nowrap C user docs somefile ext a href NTFS html Alternate data stream ADS title NTFS alternate stream name a span inthisdir greatgrandparent Windows PowerShell i drive letter i or i drive name i or i server name i or i PSSnapIn name i i PSProvider name PSDrive root i or C user docs Letter txtC user docs Letter txt Server01 user docs Letter txtcd Desktop UserDocs Letter txt Variable PSVersionTable Registry HKEY LOCAL MACHINE SOFTWARE Microsoft PowerShell Security Certificate CurrentUser TOPS 20 DCL i device name i PS lt USER DOCS gt LETTER TXT 4 RSX 11 MCR i device name i DR0 30 12 LETTER TXT 4 OpenVMS DCL i device name i 000000 or i NODE accountname password i i device name i 000000 SYS LOGIN SYS SYSDEVICE USER DOCS PHOTO JPG IN THIS DIR COM GreatGrandParent TXT SYS SYSDEVICE DRAFTS LETTER TXT 4 GEIN 000000 LETTER TXT 4 SYS LOGIN LOGIN COM ClassicMac OS i volume or drive name i Macintosh HD Documents Letter fileincurrentdir fileinparent fileingrandparent ProDOS AppleSoft BASIC i volume or drive name i SCHOOL DISK APPLEWORKS MY REPORT FLIGHT SIMULATOR D2 AmigaOS Amiga CLI AmigaShell i drive volume device or assign name i empty string Workbench Utilities MultiViewDF0 S Startup SequenceS Startup SequenceTCP en wikipedia com 80 RISC OS ShellCLI i fs type option drive number or disc name i note amp and can also be used to reference the root of the current user the library and the current working directory respectively amp ADFS MyDrive Documents LetterNet MainServer DataDrive Main sy10823LanMan WindowsC Pictures Japan gifNFS amp ChoicesADFS IfThere inthisdir greatgrandparent When filesystems with filename extensions are mounted characters are changed to as in the Japan gif example above Symbian OS File manager i user docs Letter txt i Domain OS Shell root of domain root of current node node home user docs Letter txt inthisdir greatgrandparent rcinfo MenuetOS CMD Stratus VOS VOS command lineinterpreter i system name i i module name i gt gt lt sysname module1 gt SubDir gt AnotherDir NonStopKernel TACLTandem AdvancedCommand Language No root no parentdirectory NODE DISK SUBVOL FILE NODE DEVICE NODE DEVICE SUBDEV QUALIFIER CP M CCP i drive letter i no directory support just user areas 0 F A LETTER TXT GS OS i volume name i or i device name i or i prefix i note prefix may be a number 0 31 boot volume or AppleShare home directory or Apps Platinum Paint Platinum Paint System Finder APPLEDISK3 5B file OpenHarmony incl HarmonyOS exec 6 7 hb set root ROOT PATH hb set p product PRODUCT NAME gt LOCAL gt MEDIA TYPE gt Download gt Letter txt Japanese and Korean versions of Windows may often display the character or the character instead of the directory separator In such cases the code for a backslash is being drawn as these characters Very early versions of MS DOS replaced the backslash with these glyphs on the display to make it possible to display them by programs that only understood 7 bit ASCII other characters such as the square brackets were replaced as well see ISO 646 Windows Codepage 932 Japanese Shift JIS and Codepage 949 Korean Although even the first version of Windows supported the 8 bit ISO 8859 1 character set which has the Yen sign at U 00A5 and modern versions of Windows supports Unicode which has the Won sign at U 20A9 much software will continue to display backslashes found in ASCII files this way to preserve backwards compatibility 8 Mac OS X as a derivative of UNIX uses UNIX paths internally However to preserve compatibility for software and familiarity for users many portions of the GUI switch typed by the user to internally and switch them back when displaying filenames a entered by the user is also changed into but the inverse translation does not happen Paths in programming languages editProgramming languages also use paths E g When a file is opened Most programming languages use the path representation of the underlying operating system uxFile fopen project readme txt r winFile fopen C Program Files bin config bat r This direct access to the operating system paths can hinder the portability of programs To support portable programs Java uses File separator to distinguish between and separated paths Seed7 has a different approach for the path representation In Seed7 all paths use the Unix path convention independent of the operating system Under windows a mapping takes place e g The path c users is mapped to c users Universal Naming Convention editThe Microsoft Windows UNC short for Universal Naming Convention or Uniform Naming Convention specifies a common syntax to describe the location of a network resource such as a shared file directory or printer The UNC syntax for Windows systems has the generic form ComputerName SharedFolder Resource Microsoft often refers to this as a network path Some Microsoft Windows interfaces also allow or require UNC syntax for WebDAV share access rather than a URL The UNC syntax is extended 9 with optional components to denote use of SSL and TCP IP port number a WebDAV URL of http s HostName Port SharedFolder Resource becomes HostName SSL Port SharedFolder Resource When viewed remotely the SharedFolder may have a name different from what a program on the server sees when opening SharedFolder Instead the SharedFolder name consists of an arbitrary name assigned to the folder when defining its sharing Some Microsoft Windows interfaces also accept the Long UNC UNC ComputerName SharedFolder Resource Microsoft Windows uses the following types of paths local file system LFS such as C File universal naming convention UNC such as Server Volume File or lt internet resource name gt Directory name at least in Windows 7 and later long device path such as C File or UNC Server Volume File 10 This path points to the local file namespace and is a similar one that points to the local DOS device namespace This format is also the raw or uninterpreted path since it sends paths straight to the file system without converting to and interpreting names like 4 Windows NT object manager prefixed paths global DOS namespace 11 12 In versions of Windows prior to Windows XP only the APIs that accept long device paths could accept more than 260 characters The shell in Windows XP and Windows Vista explorer exe allows path names up to 248 characters long citation needed Since UNCs start with two backslashes and the backslash is also used for string escaping and in regular expressions this can result in extreme cases of leaning toothpick syndrome an escaped string for a regular expression matching a UNC begins with 8 backslashes because the string and regular expression both require escaping This can be simplified by using raw strings as in C s or Python s r or regular expression literals as in Perl s qr POSIX pathname definition editMost Unix like systems use a similar syntax 13 POSIX allows treating a path beginning with two slashes in an implementation defined manner 14 though in other cases systems must treat multiple slashes as single slashes 15 Many applications on Unix like systems for example scp rcp and rsync use resource definitions such as hostname directorypath resource or URI schemes with the service name here smb smb hostname directorypath resourceExample editUnix style edit The following worked example discusses the behavior of a Unix style file system as it would appear from a terminal or terminal application command line window Attached to a current working directory cwd of users mark One wants to change the current working directory to users mark bobapples At that moment the relative path for the desired directory can be represented as bobapples or for short bobapples and the absolute path for the directory as users mark bobapples Given bobapples as the relative path for the directory wanted the following may be typed at the command prompt to change the current working directory to bobapples cd bobapples Two dots point upwards in the hierarchy to indicate the parent directory one dot represents the current directory itself Both can be components of a complex relative path e g mark bobapples where alone or as the first component of such a relative path represents the working directory Using foo to refer to a file foo in the current working directory can sometimes usefully distinguish it from a resource foo to be found in a default directory or by other means for example to view a specific version of a manual page instead of the one installed in the system MS DOS Microsoft Windows style edit This section needs additional citations for verification Please help improve this article by adding citations to reliable sources in this section Unsourced material may be challenged and removed November 2020 Learn how and when to remove this message nbsp Screenshot of a Windows command shell showing filenames in a directory Contrary to popular belief the Windows system API accepts slash and thus all the above Unix examples should work But many applications on Windows interpret a slash for other purposes or treat it as an invalid character and thus require you to enter backslash notably the cmd exe shell often called the terminal as it typically runs in a terminal window Note that many other shells available for Windows such as tcsh and Windows PowerShell allow the slash In addition does not indicate a single root but instead the root of the current disk Indicating a file on a disk other than the current one requires prefixing a drive letter and colon No ambiguity ensues because colon is not a valid character in an MS DOS filename and thus one cannot have a file called A in the current directory UNC names any path starting with do not support slashes 4 The following examples show MS DOS Windows style paths with backslashes used to match the most common syntax A Temp File txt This path points to a file with the name File txt located in the directory Temp which in turn is located in the root directory of the drive A C File txt This path refers to a file called File txt located in the parent directory of the current directory on drive C Folder SubFolder File txt This path denotes a file called File txt located in SubFolder directory which in turn is located in Folder directory which is located in the current directory of the current drive since this example gives no drive specification File txt This rather simple path points to a file named File txt located in the current directory since the path lacks a directory specification on the current drive since no drive specification is present COM1 This path refers to the first serial port COM1 C gt more lt C Windows system ini for 16 bit app support 386Enh woafont dosapp fon EGA80WOA FON EGA80WOA FON EGA40WOA FON EGA40WOA FON CGA80WOA FON CGA80WOA FON CGA40WOA FON CGA40WOA FON This example uses a path containing slashes as directory separator The command redirects the content of the file to the more command E gt dir Folder SubFolder Q Volume in drive E is Data Volume Serial Number is 07BE 0B10 Directory of E Folder SubFolder 18 October 2008 08 15 AM lt DIR gt DOMAIN user 18 October 2008 08 15 AM lt DIR gt DOMAIN user 18 October 2008 08 15 AM lt DIR gt DOMAIN user File txt 1 File s 8 bytes 2 Dir s 19 063 000 bytes free A path containing forward slashes often needs to be surrounded by double quotes to disambiguate it from command line switches note CD does not work this way CD drive letter Program Files will only work from the root drive letter directory This appears to treat all forward slashes the same as citation needed exception Use the D switch to change current drive in addition to changing current directory for a drive For example CD C Program Files works the same as CD C Program Files Also from a root folder CD C Program Files Internet Explorer would be treated the same as CD C Program Files Internet Explorer If there is no relative path to the directory name specified with forward slashes you will get the following error The system cannot find the path specified For setting environment variables it is sometimes necessary to provide a path that does not contain spaces in it for instance JAVA HOME defined as C Program Files Java can cause scripts to halt when they encounter the space in the path name To get the eight character name Windows assigns to any directory for substitution in environment variables use the directory listing command with the x option one level up from the target directory For instance the following will get you the eight character name for all directories directly under root C gt dir xSee also editFilename basename Device file dirname Distributed file system DFS Filesystem Hierarchy Standard FHS Fully qualified file name PATH variable URL Uniform Resource Locator References edit Daley R C Neumann P G 1965 A general purpose file system for secondary storage Proceedings of the November 30 December 1 1965 fall joint computer conference Part I on XX AFIPS 65 Fall part I Vol Part I pp 213 229 doi 10 1145 1463891 1463915 S2CID 16236414 Why Windows Uses Backslashes and Everything else Uses Forward Slashes 10 February 2014 Why is the DOS path character 24 June 2005 a b c Naming Files Paths and Namespaces Microsoft Docs 15 December 2022 cd Windows Commands Windows Server Microsoft Docs 3 February 2023 Retrieved 4 October 2023 Introduction to the Shell GitHub OpenAtom OpenHarmony Retrieved 13 March 2024 exec GitHub OpenAtom OpenHarmony Retrieved 14 March 2024 When is a backslash not a backslash Sorting it all Out DavGetHTTPFromUNCPath function WebDAV Windows Microsoft Docs series 13 October 2021 Retrieved 4 October 2023 File path formats on Windows systems File and Stream I O NET Microsoft Docs Retrieved 14 July 2019 winapi Is there a difference between and paths Stack Overflow Path prefixes and Stack Overflow UNC Definition ComputerLanguage com POSIX pathname resolution specification POSIX pathname definition External links editPath Definition The Linux Information Project LINFO Naming Files Paths and Namespaces Local File Systems Windows Microsoft Docs Retrieved from https en wikipedia org w index php title Path computing amp oldid 1218460997, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.