Az elérési út (angolul: path) egy fájl vagy könyvtár (mappa) helyét határozza meg a fájlrendszerben. Az elérési út bizonyos karakterrel elválasztott komponensekből áll, melyek közül az utolsó maga a fájl vagy mappa neve, a többi pedig meghatározza, hogy milyen könyvtárakon át navigálva található meg. Az elválasztó karakter operációs rendszertől függően általában a perjel ("/"), a fordított perjel ("\"), a kettőspont (":"), vagy ritkábban más karakter. Az elérési utakat az informatikában széles körben használják a modern operációs rendszerekben elterjedt könyvtár/fájl kapcsolatok képviseletére, valamint az URL-ek szerves tagjai. Megkülönböztetünk abszolút és relatív útvonalakat.

Abszolút és relatív útvonalak Az abszolút elérési útvonal a fájlrendszeren belül mindig ugyanazt a helyet jelöli, az aktuális munkakönyvtártól függetlenül. Ezért a gyökérkönyvtárból indul, és a fájlig vezető összes könyvtár nevét tartalmazza.

Ezzel szemben a relatív elérési útvonal az aktuális könyvtárból indul, ezért különböző helyzetekben más állományokat jelölhet. Ennek következtében önmagában a fájlnév a fájlt tartalmazó könyvtárból induló relatív útvonalnak tekinthető.

Útvonalak ábrázolása operációs rendszer és shell szerint Operációs rendszerShellGyökérkönyvtárElválasztó karakterAktuális munkakönyvtárSzülő könyvtárFelhasználó mappájaPéldákUNIX-szerű (pl. Linux és macOS)Unix rendszerhéj//...~/home/user/docs/Letter.txt./inthisdir../../greatgrandparent~/.rcinfoDOSCOMMAND.COM[meghajtó betűjele:]\ vagy \\[szerver neve]\[kötet]\\...C:\USER\DOCS\LETTER.TXTA:PICTURE.JPG \\SERVER01\USER\DOCS\LETTER.TXTOS/2cmd.exe[meghajtó betűjele:]\ vagy \\[szerver neve]\[kötet]\/ vagy \...C:\user\docs\Letter.txtA:Picture.jpg\\SERVER01\USER\docs\Letter.txtMicrosoft Windowscmd.exe\ (a kötet gyökeréhez viszonyított)vagy [meghajtó betűjele]:\vagy \\[szerver]\[megosztás]\vagy \\?\[drive_spec]:\vagy \\?\[szerver]\[megosztás]\vagy \\?\UNC\[szerver]\[megosztás]\vagy \\.\[fizikai eszköz]\/ vagy \...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.txtC:\user\docs\somefile.ext:alternate stream name ./inthisdir../../greatgrandparentWindows PowerShell[meghatjó betújele:]/ vagy [meghajtó neve:]\ vagy \\[szerver neve]\ vagy

[PSSnapIn]\[PSProvider:][:PSDrive]/ vagy \...~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\ClassicMac OS[meghajtó vagy kötet neve]:::::Macintosh HD:Documents:Letter:fileincurrentdir::fileinparent:::fileingrandparentAmigaOSAmiga CLI /AmigaShell[meghajtó, kötet, eszköz neve]:/""(üres sztring)/Workbench:Utilities/MultiViewDF0:S/Startup-SequenceS:Startup-SequenceTCP:en.wikipedia.com/80RISC OSShellCLI[fájlrendszer[#opció]:][:meghajtó száma vagy lemez jele.]$.@^&ADFS::MyDrive.$.Documents.LetterNet#MainServer::DataDrive.$.Main.sy10823LanMan::WindowsC.$.Pictures.Japan/gifNFS:&.!ChoicesADFS:%[email protected]^.^.greatgrandparent Fájlkiterjesztéssel rendelkező fájlrendszerekben a pont (".") karakterek perjellé ("/") íródnak át, a fenti 'Japan.gif' példához hasonlóan. Symbian OSFile manager\\\user\docs\Letter.txtMenuetOSCMD//CP/MCCP[meghajtó betűjele:]nincsenek könyvtárak, csak 16 felhasználői terület (0-F)A:LETTER.TXT A Windows japán és koreai verzióiban gyakran a "¥" vagy a "₩" karakter jelenik meg az elválasztó karakter helyett. Az MS-DOS nagyon korai verziói a fordított perjel helyett ezeket jelenítették meg, hogy a csak 7-bites ASCII-t értő programokban lehessen mód ezeknek a szimbólumoknak az ábrázolására (más karakterek, például a szögletes zárójelek is kicserélődtek, lásd ISO 646, Windows 932. kódlap (japán Shift JIS) és 949. kódlap (koreai) ). Bár már a Windows első verziója is támogatta a 8 bites ISO-8859-1 karakterkészletet, amelyben a jen szimbólum kódpontja U+00A5, és a Windows modern verziói támogatják az Unicode-ot, amelyben a won jel kódpontja U+20A9, a visszafelé kompatibilitás megőrzése érdekében több szoftver most is így jeleníti meg az ASCII fájlokban talált perjeleket.Sorting it all Out: When is a backslash not a backslash?

Unix-szerű operációs rendszer lévén, a macOS Unix elérési útvonalakat használ. A Classic Mac OS-szel való kompatibilitás megőrzése érdekében a felhasználói felület több részén a beírt ":" karakterek "/" karakterekként kerülnek értelmezésre, és a fájlnevek megjelenítésekor visszaalakulnak.

Programozási nyelvekben Programozásban is gyakran van szükség elérési útvonalakra, például fájlok megnyitásához. A legtöbb programozási nyelv az adott operációs rendszer ábrázolását használja:FILE unix_file = fopen("project/readme.txt", "r");FILE windows_file = fopen("C:\\Program Files\\bin\\config.bat", "r");

Az operációs rendszertől függő ábrázolás használata nehezítheti a szoftverek hordozhatóságát, ezért több magas szintű programozási nyelvben vannak külön eljárások elérési útvonalak kezelésére. Java nyelvben az operációs rendszerben használt elválasztó karakter a File.separator mezőben megtalálható. Más nyelvek platformtól függetlenül ugyanazt az egységes megjelenítést használják, és használatukkor automatikusan átalakítódnak a megfelelő formára (pl. a C:\Windows útvonal helyett a programozó /C/Windows-t ír).

Példa

Unix A következő példa a Unix-szerű fájlrendszer viselkedését tárgyalja, ahogyan az egy terminálban vagy parancssori alkalmazásban látszik:

A következő munkakönyvtárt megnyitva (cwd): /home/pista A következő könyvtárba szeretnénk átváltani: /home/pista/dokumentumok A kívánt könyvtár relatív elérési útvonala most: ./dokumentumok vagy röviden: dokumentumok és a könyvtár abszolút elérési útvonala: /home/pista/dokumentumok Ha a dokumentumok kívánt könyvtár relatív elérési útja, a parancssorba az alábbiak írhatók be, hogy az aktuális munkakönyvtár a dokumentumokra cserélődjön: cd dokumentumok A két pont ("") a könyvtárhierarchiában felfelé mutat, azaz a szülő könyvtárra; az egy pont ("") magát az aktuális könyvtárat jelöli. Mindkettő egy összetett relatív útvonal összetevője lehet (pl. ""), ahol a " " önmagában vagy egy ilyen relatív út első komponenseként a munkakönyvtárat képviseli.

Az aktuális könyvtárban található programfájl futtatásához a legtöbb rendszeren annak nevét ./ karaktereknek kell megelőznie. Ez azért van, mert egy program neve beírása során ha elérési út nincs megadva, azt a $PATH környezeti változóban megadott könyvtárak egyikében keresi (általában ez a /bin, /sbin, /usr/bin és /usr/sbin útvonalakat tartalmazza, kettőspont karakterekkel elválasztva), és explicit jelölnünk kell, ha nem egy program nevét, hanem egy futtatható állomány elérési útját adtuk meg. Így tehát egy program fordítása során keletkező a.out futtatásához a ./a.out parancsot kell beírni.

Források

Fordítás

További információk Path Definition - The Linux Information Project (angolul) Naming Files, Paths, and Namespaces - Local File Systems : Windows : Microsoft Docs (angolul)

Kategória:Fájlrendszerek