Cesta (výpočet) - Path (computing)
![]() | tento článek potřebuje další citace pro ověření.Červenec 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
A cesta, obecná forma název a soubor nebo adresář, určuje jedinečné umístění v a souborový systém. Cesta ukazuje na umístění systému souborů podle hierarchie adresářového stromu vyjádřené v a tětiva z postavy ve kterém komponenty cesty oddělené oddělovacím znakem představují každý adresář. Vymezovací znak je nejčastěji rozřezat ("/") obrácené lomítko znak ("") nebo dvojtečka (":"), i když některé operační systémy může použít jiný oddělovač. Cesty jsou hojně využívány v počítačová věda reprezentovat vztahy adresářů a souborů běžné v moderních operačních systémech a jsou nezbytné pro konstrukci Jednotné vyhledávače zdrojů (URL). Zdroje mohou být reprezentovány oběma absolutní nebo relativní cesty.
Dějiny
Multics poprvé představil hierarchický souborový systém s adresáři (oddělenými „>“) v polovině 60. let.[1]
Kolem roku 1970, Unix představil lomítko ("/") jako oddělovač adresáře.
V roce 1981, první verze Microsoft DOS byl vydán. MS-DOS Verze 1.0 nepodporovala adresáře souborů. Také velká část obslužných příkazů zabalených s MS-DOS 1.0 pochází IBM a jejich syntaxe příkazového řádku používala lomítko jako předponu „přepínače“. Například, dir / w
provozuje dir
příkaz s možností formátu širokého seznamu.
Toto použití lomítka lze stále najít v příkazovém rozhraní pod Microsoft Windows. Naproti tomu Unix používá jako předponu přepínače příkazového řádku pomlčku („-“).
Když byla do systému MS-DOS ve verzi 2.0 přidána podpora adresářů, znak „/“ byl zachován jako znak předpony přepínače pro zpětnou kompatibilitu. Společnost Microsoft si jako oddělovač adresářů vybrala znak zpětného lomítka („“), který vypadá podobně jako lomítko, ačkoli modernější verze systému Windows jsou lomítko-agnostické, což umožňuje kombinaci obou typů lomítek v cestě.[2]
Absolutní a relativní cesty
An absolutní nebo plný cesta ukazuje na stejné místo v systému souborů bez ohledu na aktuální pracovní adresář. K tomu musí obsahovat kořenový adresář.
Naproti tomu a relativní cesta začíná od nějakého daného pracovního adresáře, takže není nutné poskytovat úplnou absolutní cestu. A název souboru lze považovat za relativní cestu založenou na aktuálním pracovním adresáři. Pokud pracovní adresář není soubor nadřazený adresář, a soubor nebyl nalezen bude výsledkem, pokud je soubor adresován jeho jménem.
Reprezentace cest podle operačního systému a prostředí
Provozní Systém | Shell | Vykořenit adresář | Adresář oddělovač | Aktuální adresář | Rodič adresář | Domov adresář | Příklady |
---|---|---|---|---|---|---|---|
Unixový OS (vč. Operační Systém Mac ) | Unix shell | / | / | . | .. | ~ | /home/user/docs/Letter.txt ./inthisdir ../../velkýprarodič ~ / .rcinfo |
DOS | COMMAND.COM | [písmeno jednotky:]\ nebo \\[název serveru]\[hlasitost]\ | \ | . | .. | C: USER DOCS LETTER.TXT A: PICTURE.JPG SERVER01 USER DOCS LETTER.TXT | |
OS / 2 | cmd.exe | [písmeno jednotky:]\ nebo \\[název serveru]\[hlasitost]\ | / nebo \ | . | .. | C: user docs Letter.txt A: Picture.jpg SERVER01 USER docs Letter.txt | |
Microsoft Okna | cmd.exe | \ (vzhledem k aktuálnímu kořenu pracovního adresáře)nebo [písmeno_jednotky]:\ nebo \\[server]\[sdílené jméno]\ nebo \\?\[drive_spec]:\ nebo \\?\[server]\[sdílené jméno]\ nebo ? UNC [server]\[sdílené jméno]\ nebo \\.\[fyzické_zařízení]\ | / nebo \ | . | .. [3] | C: user docs Letter.txt /user/docs/Letter.txt C: Letter.txt Server01 uživatel dokumenty Letter.txt ? UNC Server01 user docs Letter.txt ? C: user docs Letter.txt C: user docs somefile.ext:alternativní název streamu ./inthisdir ../../velkýprarodič | |
Windows PowerShell | [písmeno jednotky:]/ nebo [název jednotky:]\ nebo \\[název serveru]\ nebo
| / nebo \ | . | .. | ~ | C: user docs Letter.txt C: user / docs Letter.txt Server01 uživatel dokumenty Letter.txt cd ~ Desktop
| |
TOPS-20 | DCL | [Název zařízení:] | . | PS: | |||
RSX-11 | MCR | [Název zařízení:] | DR0: [30,12] LETTER.TXT; 4 | ||||
OpenVMS | DCL | [Název zařízení:][000000] nebo
| . | [] | [-] | PŘIHLÁŠENÍ SYS $: | SYS $ SYSDEVICE: [USER.DOCS] PHOTO.JPG
|
Klasický Operační Systém Mac | [název svazku nebo jednotky]: | : | : | :: | Macintosh HD: Dokumenty: Letter : fileincurrentdir :: fileinparent ::: archivace rodičů | ||
ProDOS | AppleSoft BASIC | /[název svazku nebo jednotky]/ | / | /SCHOOL.DISK/APPLEWORKS/MY.REPORT
| |||
AmigaOS | Amiga CLI / AmigaShell | [název jednotky, svazku, zařízení nebo přiřazení]: | / | "" (prázdný řetězec) | / | Workbench: Nástroje / MultiView DF0: S / Startup-Sequence S: Startup-Sequence TCP: en.wikipedia.com/80 | |
RISC OS | ShellCLI | [fs type [#option]:] [: číslo jednotky nebo název disku.]$ poznámka: &,% a @ lze také použít k odkazu na root | . | @ | ^ | & | ADFS :: MyDrive. $. Documents.Letter Čistý # MainServer :: DataDrive. $. Main.sy10823 LanMan :: Windows C. $. Obrázky. Japonsko / gif NFS: &.! Možnosti ADFS:%. IfThere @ .thisdir ^. ^. velký prarodič Když jsou připojeny souborové systémy s příponami souborů, |
Symbian OS | Správce souborů | \ | \ | user docs Letter.txt | |||
Doména / OS | Shell |
| / | . | \ | ~ | //node/home/user/docs/Letter.txt ./inthisdir velký prarodič ~ rcinfo |
MenuetOS | CMD | / | / | ||||
Stratus VOS | Příkazový řádek VOS tlumočník | %[system_name]#[název_modulu]> | > | < | % sysname # module1> SubDir> AnotherDir | ||
Nepřetržitě Jádro | TACL Tandemový pokročilý Příkazový jazyk | Žádný kořen | . | žádný rodič adresář | NODE. $ DISK.SUBVOL.FILE NODE. $ ZAŘÍZENÍ NODE. $ DEVICE. # SUBDEV.QUALIFIER | ||
CP / M | CCP | [písmeno jednotky:] | žádná podpora adresářů, pouze uživatelské oblasti 0 – F | A: LETTER.TXT | |||
GS / OS | : [název svazku]: nebo .[Název zařízení]: nebo [předpona]: poznámka: prefix může být číslo (0–31), | : nebo / | @ | : Aplikace: Platinum.Paint: Platinum.Paint *: Systém: Vyhledávač .APPLEDISK3.5B / soubor |
Japonské a korejské verze systému Windows mohou často zobrazovat¥ 'znak nebo'₩ znak místo oddělovače adresářů. V takových případech se kód zpětného lomítka kreslí jako tyto znaky. Velmi rané verze systému MS-DOS nahradily zpětné lomítko těmito glyfy na displeji, aby bylo možné je zobrazit pomocí programů, které rozuměly pouze 7bitovým ASCII (byly také nahrazeny další znaky, jako jsou hranaté závorky, viz ISO 646, Windows Codepage 932 (japonský posun JIS), a Kódová stránka 949 (korejština) ). Ačkoli i první verze systému Windows podporovala 8bitovou verzi ISO-8859-1 znaková sada, která má znak Yen na U + 00A5, a moderní verze Windows podporuje Unicode který má na W + 20A9 znak Won, mnoho softwaru bude i nadále zobrazovat zpětná lomítka nalezená v souborech ASCII tímto způsobem, aby byla zachována zpětná kompatibilita.[4]
Mac OS X, jako derivát systému UNIX, používá cesty systému UNIX interně. Aby se však zachovala kompatibilita softwaru a znalost uživatelů, mnoho částí grafického uživatelského rozhraní „/“ zadaných uživatelem na „:“ interně a při zobrazení názvů souborů je přepne zpět („:“ zadané uživatelem se také změní do „/“, ale inverzní překlad se nestane).
Cesty v programovacích jazycích
Programovací jazyky také používají cesty. Např .: Když je soubor otevřen. Většina programovacích jazyků používá reprezentaci cesty základního operačního systému:
uxFile = fopen ("project / readme.txt", "r")
winFile = fopen ("C: Program Files bin config.bat", "r")
Tento přímý přístup k cestám operačního systému může bránit přenositelnosti programů. Podporovat přenosné programy Jáva používá File.separator rozlišovat mezi / a oddělené cesty. 7. semeno má odlišný přístup k reprezentaci cesty. V Seed7 používají všechny cesty unixovou konvenci cest, nezávisle na operačním systému. Pod okny probíhá mapování (např .: Cesta / c / uživatelé je mapováno na c: uživatelé).
Univerzální úmluva o pojmenování
Microsoft Windows UNC, zkratka pro Univerzální úmluva o pojmenování nebo Úmluva o jednotném pojmenování, určuje společnou syntaxi k popisu umístění síťového prostředku, například sdíleného souboru, adresáře nebo tiskárny. Syntaxe UNC pro systémy Windows má obecnou formu:
ComputerName SharedFolder Resource
Microsoft to často označuje jako „síťová cesta".
Některá rozhraní Microsoft Windows také umožňují nebo vyžadují syntaxi UNC WebDAV sdílet přístup, spíše než URL. Syntaxe UNC je rozšířena[5] s volitelnými komponentami označujícími použití čísla portu SSL a TCP / IP, URL WebDAV z http [s]: // Název hostitele [: Port] / SharedFolder / Zdroj
se stává
HostName [@SSL] [@ Port] SharedFolder Resource
Při vzdáleném pohledu může mít název „SharedFolder“ jiný název, než jaký vidí program na serveru při otevření „ SharedFolder“. Místo toho se název SharedFolder skládá z libovolného názvu přiřazeného složce při definování jejího „sdílení“.
Některá rozhraní systému Microsoft Windows také přijímají „Long UNC“:
? UNC ComputerName SharedFolder Resource
Microsoft Windows používá následující typy cest:
- místní souborový systém (LFS), například
C: Soubor
- univerzální konvence pojmenování (UNC), jako např
Server Volume File
nebo
(alespoň ve Windows 7 a novějších)[ název adresáře] - "dlouhá" cesta zařízení jako
? C: Soubor
nebo? UNC Server Volume File
.[6] Tato cesta ukazuje na místní prostor jmen souborů a\\.\
je podobný, který odkazuje na místní jmenný prostor zařízení DOS. Tento formát je také cestou „raw“ nebo „uninterpreted“, protože odesílá cesty přímo do systému souborů bez převodu / na \ a tlumočení jmen jako ...[7] - Správce objektů Windows NT
\\??\
-předponové cesty (globální jmenný prostor DOS).[8][9]
Ve verzích Windows před Windows XP mohla pouze rozhraní API, která přijímají „dlouhé“ cesty zařízení, přijmout více než 260 znaků.
The skořápka v Windows XP a Windows Vista, explorer.exe, umožňuje názvy cest o délce až 248 znaků.[Citace je zapotřebí ]
Vzhledem k tomu, že UNC začínají dvěma zpětnými lomítky a zpětné lomítko se také používá pro únik řetězců a dovnitř regulární výrazy, to může mít za následek extrémní případy syndrom nakloněné párátka: řetězec s únikem pro regulární výraz odpovídající UNC začíná 8 zpětnými lomítky - \\\\\\\\
- protože řetězec i regulární výraz vyžadují únik. To lze zjednodušit pomocí syrové struny, jako v C # @"\\\\"
nebo Python r ''
, nebo literály regulárního výrazu, jako v Perlu qr {}
.
Definice cesty POSIX
Většina unixových systémů používá podobnou syntaxi.[10]POSIX umožňuje zpracování cesty začínající dvěma lomítky způsobem definovaným v implementaci,[11]i když v ostatních případech musí systémy považovat více lomítek za jedno lomítko.[12]Mnoho aplikací na systémech podobných Unixu (například scp, rcp a rsync ) použijte definice prostředků, jako například:
název hostitele: / cesta_adresáře / prostředek
nebo jako URL s názvem služby (zde „komu“):
smb: // název hostitele / cesta k adresáři / zdroj
Příklad
Unixový styl
Následující zpracovaný příklad pojednává o chování a Unix -styl souborový systém jak by vypadalo z terminálu nebo aplikace terminálu (okno příkazového řádku):
Připojeno k aktuálnímu pracovnímu adresáři (cwd):
/ users / mark /
Jeden chce změnit aktuální pracovní adresář na:
/ users / mark / bobapples
V tu chvíli relativní cesta pro požadované adresář lze reprezentovat jako:
./bobples
nebo zkráceně:
bobapples
a absolutní cesta k adresáři jako:
/ users / mark / bobapples
Dáno bobapples jako relativní cesta k požadovanému adresáři lze na server zadat následující příkazový řádek změnit aktuální pracovní adresář na bobapples:
CD bobapples
Dvě tečky („..") směřovat nahoru v hierarchie, k označení nadřazený adresář; jedna tečka („.„) představuje samotný aktuální adresář. Obě mohou být složkami komplexní relativní cesty (např.“../mark/./bobapples„), kde“."samostatně nebo jako první složka takové relativní cesty představuje pracovní adresář. (Použitím "./foo„odkazovat na soubor“foo"v aktuálním pracovním adresáři jej někdy užitečné odlišit od zdroje"foo"lze najít ve výchozím adresáři nebo jinými prostředky; například pro zobrazení konkrétní verze souboru manuální stránka místo toho, který je nainstalován v systému.)
Styl MS-DOS / Microsoft Windows
![]() | Tato sekce potřebuje další citace pro ověření.Listopad 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |

Na rozdíl od všeobecného přesvědčení API systému Windows přijímá lomítko, a proto by všechny výše uvedené příklady Unixu měly fungovat. Ale mnoho aplikací v systému Windows interpretuje lomítko pro jiné účely nebo s ním zachází jako s neplatným znakem, a proto vyžaduje zadání zpětného lomítka - zejména cmd.exe shell (často nazývaný „terminál“, protože obvykle běží v okně terminálu). Všimněte si, že mnoho dalších skořápek dostupných pro Windows, například tcsh a Windows PowerShell, povolte lomítko.
Kromě toho „“ neznamená jediný kořen, ale místo toho kořen „aktuálního disku“. Označení souboru na jiném než aktuálním disku vyžaduje předponu písmene jednotky a dvojtečky. Nejedná se o dvojznačnost, protože dvojtečka není platný znak v názvu souboru systému MS-DOS, a proto nelze mít v aktuálním adresáři soubor s názvem „A:“.
Názvy UNC (libovolná cesta začínající na \\?\) nepodporují lomítka.[13]
Následující příklady ukazují MS-DOS /Okna cesty stylu, se zpětnými lomítky používanými k porovnání nejběžnější syntaxe:
Odpověď: Temp File.txt
Tato cesta ukazuje na soubor s názvem Soubor.txt, který se nachází v adresáři Teplota, který je zase umístěn v kořenovém adresáři jednotky A:.
C: .. File.txt
Tato cesta odkazuje na soubor s názvem Soubor.txt umístěný v nadřazeném adresáři aktuálního adresáře na jednotce C:.
Složka podsložka soubor.txt
Tato cesta označuje soubor s názvem Soubor.txt nacházející se v Podsložka adresář, který se zase nachází v Složka adresář, který je umístěn v aktuálním adresáři aktuální jednotky (protože tento příklad neposkytuje žádnou specifikaci jednotky).
Soubor.txt
Tato poměrně jednoduchá cesta ukazuje na soubor s názvem Soubor.txt
nachází se v aktuálním adresáři (protože cesta neobsahuje specifikaci adresáře) na aktuální jednotce (protože není k dispozici žádná specifikace jednotky).
. COM1
Tato cesta odkazuje na první sériový port (COM1 ).
C: >více < C: /Windows/system.ini
; pro podporu 16bitových aplikací[386Enh]woafont=dosapp.fonEGA80WOA.FON=EGA80WOA.FONEGA40WOA.FON=EGA40WOA.FONCGA80WOA.FON=CGA80WOA.FONCGA40WOA.FON=CGA40WOA.FON...
Tento příklad používá cestu obsahující lomítka jako oddělovač adresáře. Příkaz přesměruje obsah souboru na více
příkaz.
E: >dir „/ Složka / Podsložka /“ / Q Svazek na jednotce E je Data Sériové číslo svazku je 07BE-0B10 Adresář E: Folder SubFolder18. října 2008 08:15 DOMÉNA uživatel.18. října 2008 08:15 DOMÉNA uživatel ..18. října 2008 08:15 DOMAIN uživatel File.txt 1 Soubor (y) 8 bajtů 2 adresáře 19 063 000 bajtů zdarma
Cesta, která obsahuje lomítka, musí být často obklopena uvozovkami, aby bylo možné ji oddělit přepínače příkazového řádku.
- poznámka: CD takto nefunguje:
CD „[písmeno jednotky]: / Program Files“ bude fungovat pouze z kořenového adresáře ([písmeno jednotky]: ). Zdá se, že se se všemi lomítky zachází stejně jako. .[Citace je zapotřebí ]
- výjimka: Kromě změny aktuálního adresáře jednotky použijte přepínač / D ke změně aktuální jednotky.
Například:
CD "C:. Program Files"
funguje stejně jako
CD "C: / Program Files"
Také z kořenové složky:
CD "C:. Program Files. Internet Explorer"
bude zacházeno stejně jako
CD "C: / Program Files / Internet Explorer"
Pokud neexistuje žádná relativní cesta k názvu adresáře zadaného lomítkem, zobrazí se následující chyba:
Systém nemůže najít zadanou cestu.
Pro nastavení proměnných prostředí je někdy nutné zadat cestu, která v ní například neobsahuje mezery % JAVA_HOME%
definované jako „C: Program Files Java ...“ může způsobit zastavení skriptů, když narazí na mezeru v názvu cesty. Chcete-li získat osmimístný název, který systém Windows přiřadí libovolnému adresáři k nahrazení v proměnných prostředí, použijte příkaz výpis adresáře s možností / x o úroveň výše od cílového adresáře. Například následující vám poskytne osmimístný název pro všechny adresáře přímo pod rootem:
C: >dir /X
Viz také
- Basename
- Soubor zařízení
- Jméno
- Distribuovaný systém souborů (DFS)
- Název souboru
- Standard hierarchie souborového systému (FHS)
- Plně kvalifikovaný název souboru
- PATH (proměnná)
- Jednotný vyhledávač zdrojů (URL)
Reference
Tento článek je založen na materiálu převzatém z Zdarma online slovník výpočetní techniky před 1. listopadem 2008 a začleněno pod "licencování" podmínek GFDL, verze 1.3 nebo novější.
- ^ Daley, R.C .; Neumann, P.G. (1965). "Univerzální souborový systém pro sekundární úložiště". AFIPS Sborník společné počítačové konference. Část I: 213–229. doi:10.1145/1463891.1463915.
- ^ https://www.howtogeek.com/181774/why-windows-uses-backslashes-and-everything-else-uses-forward-slashes/
- ^ "CD". Příkazy Windows: Windows Server. Dokumenty Microsoftu. Citováno 14. července 2019.
- ^ Všechno to roztřídím: Kdy zpětné lomítko není zpětné lomítko?
- ^ "Funkce DavGetHTTPFromUNCPath". WebDAV: Windows. Dokumenty Microsoftu. série. Citováno 14. července 2019.
- ^ „Formáty cesty k souboru v systémech Windows“. File / Stream I / O: .NET. Dokumenty Microsoftu. Citováno 14. července 2019.
- ^ „Pojmenování souborů, cest a jmenných prostorů - aplikace Win32“. docs.microsoft.com.
- ^ "winapi - je rozdíl mezi ?? a ? cestami?". Přetečení zásobníku.
- ^ "Předpony cesty ?? a ? ". Přetečení zásobníku.
- ^ Definice UNC podle ComputerLanguage.com
- ^ Specifikace rozlišení cesty POSIX
- ^ Definice cesty POSIX
- ^ "Pojmenování souborů, cest a jmenných prostorů". Místní souborové systémy: Windows. Dokumenty Microsoftu. Citováno 14. července 2019.
externí odkazy
- Definice cesty - Informační projekt Linux (LINFO)
- Pojmenování souborů, cest a jmenných prostorů - Místní souborové systémy: Windows: Dokumenty Microsoftu