Pfad (Computer)

EIN Weg ist ein Saite von Figuren Wird verwendet, um einen Ort in a eindeutig zu identifizieren Verzeichnisaufbau. Es wird durch Befolgen des Verzeichnisses komponiert Baumhierarchie in welchen Komponenten, die durch ein abgrenzendes Zeichen getrennt sind, repräsentieren jedes Verzeichnis. Der abgrenzende Charakter ist am häufigsten der Schrägstrich ("/"), das Backslash Zeichen ("\") oder Colon (":"), obwohl einige Betriebssysteme kann ein anderes verwenden Abgrenzer. Wege werden ausgiebig in verwendet Informatik die in modernen Betriebssystemen üblichen Verzeichnisse/Dateibeziehungen darstellen und für den Bau von wesentlicher Bedeutung sind Uniforme Ressourcenlokatoren (URLs). Ressourcen können durch beide dargestellt werden absolut oder relativ Wege.

Geschichte

Mehrheit Erste ein hierarchisches Dateisystem mit Verzeichnissen (getrennt von ">") Mitte der 1960er Jahre.[1]

Um 1970, Unix stellte den Slash -Charakter ("/") als Verzeichnistrennzeichen ein.

1981 die erste Version von Microsoft DOS wurde veröffentlicht. MS-DOS 1.0 unterstützte keine Dateiverzeichnisse. Außerdem stammte ein Großteil der mit MS-DOS 1.0 verpackten Versorgungsbefehle aus IBM und ihre Befehlszeilensyntax verwendete das Slash -Zeichen als "Switch" -Präfix. Zum Beispiel, Dir /w läuft die Dir Befehl mit der Option Wide List -Format.

Diese Verwendung von Schrägstrichen finden Sie weiterhin in der Befehlsschnittstelle unter Microsoft Windows. Im Gegensatz dazu verwendet UNIX das Dash ("-") -Scha Zeichen als Befehlszeilenschalter Präfix.

Wenn die Verzeichnisunterstützung in Version 2.0 zu MS-DOS hinzugefügt wurde, wurde "/" als Switch-Präfix-Zeichen für die Rückwärtskompatibilität aufbewahrt. Microsoft wählte den Backslash-Zeichen ("\") als Verzeichnistrennzeichen, das dem Slash-Zeichen ähnlich aussieht, obwohl modernere Versionen der Fenster slash-agnostisch sind, was die Mischung beider Arten von Schrägstrichen auf einem Pfad ermöglicht.[2][3]

Absolute und relative Wege

Ein absolut oder voll Pfad zeigt auf denselben Ort in einem Dateisystem, unabhängig vom Strom Arbeitsverzeichnis. Dazu muss es die enthalten Wurzelverzeichnis.

Dagegen a relativ Der Pfad beginnt mit einem bestimmten Arbeitsverzeichnis und vermeidet die Notwendigkeit, den vollen absoluten Pfad zu liefern. EIN Dateiname kann als relativer Pfad im aktuellen Arbeitsverzeichnis angesehen werden. Wenn das Arbeitsverzeichnis nicht die Datei ist übergeordnetes Verzeichnis, a Datei nicht gefundener Fehler wird resultieren, wenn die Datei mit ihrem Namen behandelt wird.

Darstellungen von Pfaden durch Betriebssystem und Shell

Betriebs
System
Hülse Wurzel
Verzeichnis
Verzeichnis
Separator
Aktuell
Verzeichnis
Elternteil
Verzeichnis
Heim
Verzeichnis
Beispiele
Unix-artig OS
(inkl. Mac OS))
Unix Shell / / . .. ~ /home/user/docs/letter.txt
./inthisdir
../../Urgroßeltern
~/.rcinfo
DOS Command.com [Laufwerksbrief:] \ oder
\\ [Servername] \ [Volume] \
\ . .. C: \ user \ docs \ letter.txt
A: picture.jpg
\\ server01 \ user \ docs \ letter.txt
OS/2 cmd.exe [Laufwerksbrief:] \ oder
\\ [Servername] \ [Volume] \
/ oder \ . .. C: \ user \ docs \ letter.txt
A: picture.jpg
\\ server01 \ user \ docs \ letter.txt
Microsoft
Fenster
cmd.exe \ (relativ zu aktuellem Arbeitsverzeichniswurzel)
oder [Drive_letter]: \
oder \\[server]\[sharename]\
oder \\?\[drive_spec]:\
oder\\?\UNC\[server]\[sharename]\
oder \\.\[physical_device]\[4]
/ oder \Anwesend

Das Die japanische Ausgabe verwendet ¥, Die koreanische Version verwendet ₩ als Pfadabscheider

. ..[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 \ seltafile.ext: Alternativer Stream -Name
./inthisdir
../../Urgroßeltern
Windows PowerShell [Laufwerksbrief:]/ oder [Laufwerksname:] \oder
\\[Servername]\ oder

[Pssnapin name] \ [psProvider Name:] [: psDrive root]

/ oder \ . .. ~ C: \ user \ docs \ letter.txt
C: \ user/docs \ letter.txt
\\ server01 \ user \ docs \ letter.txt
CD ~ \ Desktop

UserDocs: /letter.txt
Variable: psversiontable
Registrierung :: HKEY_LOCAL_MACHINE \ Software \
Microsoft.PowerShell.Security \ Zertifikat :: CurrentUser \

Tops-20 DCL [Gerätename:] . PS:Brief.txt, 4
RSX-11 Mcr [Gerätename:] DR0: [30,12] Brief.txt; 4
OpenVMS DCL [Gerätename:] [000000] oder

[Node ["AccountName Passwort"]] :: [Gerätename] [000000]:

. [] [-] Sys $ login: Sys $ sysdevice: [user.docs] photo.jpg

[] In_this_dir.com;
[-.-] orgrandparent.txt
Sys $ sysdevice: [. Entwürfe] Brief.txt; 4
Gein :: [000000] Brief.txt; 4
Sys $ login: login.com

Klassisch
Mac OS
[Volumen oder Laufwerksname]: : : :: Macintosh HD: Dokumente: Brief
: FileIncurrentDir
:: FileInparent
::: dateinrandparent
Prodos Apfelsoft Basic /[Volumen oder Laufwerksname]// / /School.disk/appleworks/my.report

Flug.simulator, d2

Amigaos Amiga cli /
Amigashell
[Laufwerk, Volumen, Gerät oder Name zuweisen]: / "" "
(leerer String)
/ Workbench: Dienstprogramme/Multiviews
DF0: S/Startup-Sequenz
S: Startup-Sequenz
TCP: en.wikipedia.com/80
RISC OS Shellcli [FS -Typ [#Option]:] [: Laufwerksnummer oder Disc -Name.] $

HINWEIS: &,% und @ können auch verwendet werden, um das Root zu verweisen
des aktuellen Benutzers, der Bibliothek bzw. das aktuelle (funktionierende) Verzeichnis.

. @ ^ & Adfs :: mydrive. $. Dokumente.letter
Net#mainserver :: datadrive. $. Main.sy10823
Lanman :: windowsc. $. Pictures.japan/gif
NFS: &.! Auswahl
ADFs:%. Ithere
@.inthisdir
^.^.

Wenn Dateisysteme mit Dateinamen -Erweiterungen montiert sind,
'.' ' Die Zeichen werden wie im japanischen/gif -Beispiel oben in '/' geändert.

Symbian OS Dateimanager \ \ \ user \ docs \ Letter.txt
Domain/OS Hülse

// (Wurzel der Domäne)
/ (Wurzel des Stromknotens)

/ . \ ~ //node/home/user/docs/letter.txt
./inthisdir
\\Urgroßeltern
~ rcinfo
Menüetos CMD / /
Stratus vos VOS-Befehlszeile
Dolmetscher
%[system_name]#[module_name]> > < %sysname#module1> subdir> AnotherDir
Nonstop
Kernel
TaCl
Tandem Fortgeschrittene
Befehlssprache
Keine Wurzel . Kein Elternteil
Verzeichnis
\ Node. $ Disk.subvol.file
\ Node. $ Device
\ Node. $ Device.#Subdev.qualifier
CP/m CCP [Laufwerksbrief:] Kein Verzeichnisunterstützung, nur Benutzerbereiche 0 - F. A: Letter.txt
GS/OS : [Volumenname]: oder .[Gerätename]: oder [Präfix]:

Hinweis: Präfix kann eine Nummer (0–31) sein. * (Startvolumen) oder @ (Apfelshare -Heimverzeichnis)

: oder / @ : Apps: platinum.paint: platinum.paint
*: System: Finder
.APPLEDISK3.5B/Datei

Japanische und koreanische Versionen von Windows können häufig das anweisen '¥'Charakter oder' '''Charakter anstelle des Verzeichnisabscheiders. In solchen Fällen wird der Code für einen Backslash als diese Zeichen gezeichnet. Sehr frühe Versionen von MS-DOS ersetzten den Backslash durch diese Glyphen auf dem Display, um sie durch Programme anzuzeigen, die nur 7-Bit verstanden haben ASCII (Andere Charaktere wie die Quadratklammern wurden ebenfalls ersetzt, siehe ISO 646, Windows Codepage 932 (japanische Schicht JIS), und Codepage 949 (Koreanisch)). Obwohl selbst die erste Version von Windows den 8-Bit unterstützte ISO-8859-1 Zeichensatz, das das Yen -Zeichen bei U+00A5 und moderne Versionen von Windows -Unterstützungen hat Unicode Das gewonnene Zeichen bei U+20A9, viele Software werden weiterhin in ASCII -Dateien auf diese Weise zu finden, um die Kompatibilität rückwärts zu bewahren.[6]

Mac OS Xverwendet als Derivat von UNIX UNIX -Pfade intern. Um die Kompatibilität für Software und Vertrautheit für Benutzer beizubehalten, werden viele Teile des GUI -Switchs "/" vom Benutzer tippt ":" intern und wechseln Sie sie beim Anzeigen von Dateinamen (a ":" vom Benutzer eingegeben. in "/", aber die inverse Übersetzung geschieht nicht).

Pfade in Programmiersprachen

Programmiersprachen verwenden auch Pfade. Z. B. wenn eine Datei geöffnet wird. Die meisten Programmiersprachen verwenden die Pfaddarstellung des zugrunde liegenden Betriebssystems:

 uxFile = fopen ("project/readme.txt", "r") 
 WinFile = fopen ("C: \\ Programme \\ bin \\ config.bat", "R") 

Dieser direkte Zugriff auf die Betriebssystempfade kann die Portabilität von Programmen behindern. Unterstützung tragbarer Programme Java Verwendet Datei.Sesparator zwischen / und \ getrennten Pfaden unterscheiden. Samen7 hat einen anderen Ansatz für die Pfaddarstellung. In Seed7 verwenden alle Pfade die Unix -Path -Konvention unabhängig vom Betriebssystem. Unter Windows findet eine Zuordnung statt (z. B.: der Pfad /C/Benutzer ist zugeordnet zu C: \ Benutzer).

Universelle Namenskonvention

Das Microsoft Windows UNC, kurz für Universelle Namenskonvention oder Einheitliche NamenskonventionGibt eine gemeinsame Syntax an, um den Ort einer Netzwerkressource wie eine gemeinsam genutzte Datei, ein Verzeichnis oder einen Drucker zu beschreiben. Die UNC -Syntax für Windows -Systeme hat die generische Form:

\\ computerername \ SharedFolder \ Ressource

Microsoft bezeichnet dies oft als "Netzwerkpfad".

Einige Microsoft Windows -Schnittstellen ermöglichen oder benötigen auch eine UNC -Syntax für Webdav Teilen Sie Zugang und nicht eine URL. Die UNC -Syntax wird erweitert[7] Mit optionalen Komponenten zur Kennzeichnung der Verwendung von SSL- und TCP/IP -Portnummer, einer WebDAV -URL von http [s]: // hostname [: port]/SharedFolder/Ressource wird

\\ hostname [@SSL] [@port] \ SharedFolder \ Ressource

Wenn der "SharedFolder" aus der Ferne angezeigt wird, kann er einen Namen haben, der sich von dem, was ein Programm auf dem Server beim Öffnen von "\ SharedFolder" sieht, unterscheidet. Stattdessen besteht der Name SharedFolder aus einem beliebigen Namen, der dem Ordner beim Definieren seiner "Freigabe" zugewiesen ist.

Einige Microsoft Windows -Schnittstellen akzeptieren auch die "lange UNC":

\\? \ Unc \ computerername \ SharedFolder \ Ressource

Microsoft Windows verwendet die folgenden Arten von Pfaden:

  • Lokales Dateisystem (LFS), z. C: \ Datei
  • universelle Namenskonvention (UNC), wie z. \\ server \ Volume \ Datei oder /[\Verzeichnisname] (Zumindest in Windows 7 und später)
  • "langer" Geräteweg wie z. \\? \ C: \ Datei oder \\? \ UNC \ Server \ Volume \ Datei.[8] Dieser Pfad verweist auf den lokalen Dateinamespace und \\.\ ist ähnlich, das auf den lokalen DOS -Geräte -Namespace hinweist. Dieses Format ist auch der "rohe" oder "uninterpretierte" Pfad, da es Pfade direkt an das Dateisystem sendet, ohne konvertieren / zu \ und Interpretation von Namen wie ...[9]
  • Windows NT -Objektmanager \\ ?? \-Prefixed Pfade (globaler DOS -Namespace).[10][11]

In Versionen von Windows vor Windows XP könnten nur die APIs, die "lange" Gerätepfade akzeptieren, mehr als 260 Zeichen akzeptieren.

Das Hülse in Windows XP und Windows Vista, Explorer.exe, ermöglicht Pfadnamen bis zu 248 Zeichen lang.

Da UNCs mit zwei Backslashes beginnen und der Backslash auch für die String -Flucht und in verwendet wird Reguläre AusdrückeDies kann zu extremen Fällen führen Lieger Zahnstocher -Syndrom: Eine entkommene Zeichenfolge für einen regulären Ausdruck, der mit einem UNC übereinstimmt, beginnt mit 8 Backslashes - \\\\\\\\ - Weil die Saite und der reguläre Ausdruck beide entkommen müssen. Dies kann durch die Verwendung vereinfacht werden rohe Saitenwie in C#'s @"\\\\" oder Python r'\\\\', oder regelmäßige Ausdrucksliterale, wie in Perls qr {\\\\\}.

POSIX PATHNAME -Definition

Die meisten Unix-ähnlichen Systeme verwenden eine ähnliche Syntax.[12] Posix Ermöglicht die Behandlung eines Pfades, der mit zwei Schrägstrichen auf implementierungsdefinierte Weise beginnt.[13] In anderen Fällen müssen Systeme jedoch mehrere Schrägstriche als einzelne Schrägstriche behandeln.[14] Viele Anwendungen auf Unix-ähnlichen Systemen (zum Beispiel, zum Beispiel, SCP, RCP und rsync) Verwenden Sie Ressourcendefinitionen wie:

Hostname:/DirectoryPath/Ressource

oder Uri Systeme mit dem Servicenamen (hier 'SMB'):

SMB: // Hostname/DirectoryPath/Ressource

Beispiel

Unix -Stil

Das folgende Beispiel wird das Verhalten von a erörtert Unix-Stil Dateisystem Wie aus einer Terminal- oder Terminalanwendung (Befehlszeilenfenster) erscheint:

An ein aktuelles Arbeitsverzeichnis (CWD) von:

/Benutzer/Mark//

Man möchte das aktuelle Arbeitsverzeichnis ändern in:

/Benutzer/Mark/Bobapples

In diesem Moment die relativer Weg für die gewünschten Verzeichnis kann dargestellt werden als:

./BOBAPPLE

oder kurz:

Bobapples

und der absolute Weg für das Verzeichnis als:

/Benutzer/Mark/Bobapples

Gegeben Bobapples Wie der relative Weg für das Verzeichnis gewollt ist, kann das Folgende an der getippt werden Eingabeaufforderung Um das aktuelle Arbeitsverzeichnis in Bobappitle zu ändern:

CD Bobapples

Zwei Punkte ("..") zeigen nach oben in der Hierarchie, um das anzugeben übergeordnetes Verzeichnis; ein Punkt (".") repräsentiert das aktuelle Verzeichnis selbst. Beide können Komponenten eines komplexen relativen Pfades sein (z. B.".../mark/./bobapples"), wo "."allein oder als erste Komponente eines solchen relativen Pfades repräsentiert die Arbeitsverzeichnis. (Verwenden "./foo"Auf eine Datei beziehen"Foo"Im aktuellen Arbeitsverzeichnis kann es manchmal nützlich von einer Ressource unterscheiden"Foo"In einem Standardverzeichnis oder auf andere Weise gefunden werden; zum Beispiel, um eine bestimmte Version von a anzuzeigen Handbuch Seite anstelle der im System installierten.)

MS-DOS/Microsoft Windows Style

Screenshot von a Fenster Befehlsschale Dateinamen in einem Verzeichnis anzeigen

Entgegen der landläufigen Meinung die Windows -System -API Akzeptiert Schrägstriche, und somit sollten alle oben genannten Unix -Beispiele funktionieren. Viele Anwendungen unter Windows interpretieren jedoch einen Schrägstrich für andere Zwecke oder behandeln sie als ungültig cmd.exe Shell (oft als "Terminal" bezeichnet, wie sie normalerweise in einem Terminalfenster ausgeführt wird). Beachten Sie, dass viele andere Shells für Fenster verfügbar sind, z. TCSH und Windows PowerShell, erlauben Sie den Schrägstrich.

Zusätzlich gibt "\" keine einzelne Wurzel, sondern die Wurzel der "Stromplatte" an. Die Anzeige einer Datei auf einer anderen Festplatte als dem aktuellen erfordert das Voraus der Antriebsbuchstaben und einen Dickdarm. Es folgt keine Unklarheit, da Colon kein gültiges Zeichen in einem MS-DOS-Dateinamen ist und im aktuellen Verzeichnis keine Datei namens "A:" haben kann.

UNC -Namen (jeder Weg beginnt mit \\? \) Unterstützen Sie keine Schrägstriche.[15]

Die folgenden Beispiele zeigen MS-DOS/Fenster-Style -Pfade mit Backslashes, die zur gängigsten Syntax entspricht:

A: \ temp \ file.txt

Dieser Pfad zeigt auf eine Datei mit dem Namen Datei.txt, befindet sich im Verzeichnis Temperatur, was sich wiederum im Wurzelverzeichnis des Laufwerks befindet EIN:.

C: .. \ file.txt

Dieser Weg bezieht sich auf eine Datei mit dem Namen Datei.txt befindet sich im übergeordneten Verzeichnis des aktuellen Verzeichnisses auf dem Laufwerk C:.

Ordner \ Subordner \ file.txt

Dieser Pfad bezeichnet eine Datei mit dem Namen Datei.txt gelegen in Unterordner Verzeichnis, das sich wiederum befindet Mappe Verzeichnis, das sich im aktuellen Verzeichnis des aktuellen Laufwerks befindet (da dieses Beispiel keine Antriebspezifikation ergibt).

Datei.txt

Dieser ziemlich einfache Pfad zeigt auf eine Datei namens namens Datei.txt Im aktuellen Verzeichnis (da dem Pfad eine Verzeichnisspezifikation fehlt) im aktuellen Laufwerk (da keine Antriebsspezifikation vorhanden ist).

\\. \ Com1

Dieser Weg bezieht sich auf den ersten serielle Schnittstelle (Com1).

C: \>mehr < C: /windows/system.ini
; Für 16-Bit-App-Unterstützung [386enh] Woafont=dosapp.fon EGA80WOA.FON=EGA80WOA.FON EGA40WOA.FON=EGA40WOA.FON CGA80WOA.FON=CGA80WOA.FON CGA40WOA.FON=CGA40WOA.FON ... 

In diesem Beispiel wird ein Pfad verwendet, der Schrägstriche als Verzeichnisabscheider enthält. Der Befehl leitet den Inhalt der Datei in die um mehr Befehl.

E: \>Dir "/Ordner/Unterordner/" /Q Volumen im Laufwerk E sind Daten  Die Seriennummer der Lautstärke ist 07BE-0B10  Verzeichnis von E: \ Ordner \ Unterordner 18. Oktober 2008 08:15 Uhr <Dir> Domain \ Benutzer.18. Oktober 2008 08:15 Uhr <Dir> Domain \ Benutzer ..18. Oktober 2008 08:15 Uhr <Dir> Domain \ Benutzerdatei.txt               1 Datei (en) 8 Bytes                2 Dir (s) 19.063.000 Bytes frei 

Ein Pfad, der vorwärts gerichtete Schrägungen enthält, muss oft von doppelten Zitaten umgeben sein Befehlszeilenschalter.

  • Hinweis: CD funktioniert nicht so:

CD "[Laufwerksbuchstaben]:/Programmdateien" funktioniert nur aus dem Verzeichnis root ([Laufwerksbuchstaben]: \). Dies scheint alle Vorwärts -Schrägstriche genauso zu behandeln. \.

  • Ausnahme: Verwenden Sie den /D -Schalter, um das aktuelle Laufwerk zusätzlich zum Ändern des aktuellen Verzeichnisses für ein Laufwerk zu ändern.

Zum Beispiel:

CD "C:. \ Programme"

funktioniert genauso wie

CD "C:/Programmdateien"

Auch aus einem Root -Ordner:

CD "C:. \ Programme. \ Internet Explorer"

würde genauso behandelt werden wie

CD "C:/Programmdateien/Internet Explorer"

Wenn es keinen relativen Pfad zum Verzeichnisnamen gibt, der mit Vorwärts -Schrägstrichen angegeben ist, erhalten Sie den folgenden Fehler:

Das System kann den angegebenen Pfad nicht finden.

Um Umgebungsvariablen festzulegen, ist es manchmal erforderlich, einen Pfad bereitzustellen, der beispielsweise keine Leerzeichen enthält %JAVA_HOME% definiert als "C: \ Programme \ Java ..." kann dazu führen, dass Skripte zum Stillstand stehen, wenn sie auf den Speicherplatz im Pfadnamen stoßen. Verwenden Sie den Befehl Verzeichnisliste mit der Option "Option One" /"Option One One", um den achtcharakterischen Namen Windows zugewiesen, das in Umgebungsvariablen in Umgebungsvariablen zugewiesen wird. Im Folgenden erhalten Sie beispielsweise den acht Charakternamen für alle Verzeichnisse direkt unter Root:

C: \>Dir /x

Siehe auch

Verweise

  1. ^ Daley, R.C.; Neumann, P.G. (1965). "Ein allgemeines Dateisystem für den Sekundärspeicher". AFIP -Verfahren der gemeinsamen Computerkonferenz. Teil I: 213–229. doi:10.1145/1463891.1463915. S2CID 16236414.
  2. ^ "Warum Windows Backslashes verwendet und alles andere benutzt Forward Slashes".
  3. ^ "Warum ist der DOS -Pfadcharakter ? ".
  4. ^ Benennung von Dateien, Pfaden und Namespaces
  5. ^ "CD". Windows -Befehle: Windows Server. Microsoft Docs. Abgerufen 14. Juli 2019.
  6. ^ Alles aussortieren: Wann ist ein Backslash kein Backslash?
  7. ^ "DAVGETHTTPFROMUNCPATH -Funktion". WebDav: Windows. Microsoft Docs. Serie. Abgerufen 14. Juli 2019.
  8. ^ "Dateipfadformate auf Windows -Systemen". Datei und Stream I/O: .NET. Microsoft Docs. Abgerufen 14. Juli 2019.
  9. ^ "Benennung von Dateien, Pfaden und Namespaces - Win32 -Apps". docs.microsoft.com.
  10. ^ "Winapi - Gibt es einen Unterschied zwischen \ ?? \ und \\? \ Pfaden?". Paketüberfluss.
  11. ^ "Pfadpräfixe \ ?? \ und \\? \". Paketüberfluss.
  12. ^ UNC -Definition von computerlupanguage.com
  13. ^ POSIX PATHNAME -Auflösungsspezifikation
  14. ^ POSIX PATHNAME -Definition
  15. ^ "Benennung von Dateien, Pfaden und Namespaces". Lokale Dateisysteme: Windows. Microsoft Docs. Abgerufen 14. Juli 2019.

Externe Links