4.4 Besseres Arbeiten mit Verzeichnissen
Im Folgenden werden wir auf das Arbeiten mit Verzeichnissen eingehen. Erinnern Sie sich also noch einmal an die Konzepte des VFS (Virtual File System) und daran, was Sie in diesem Zusammenhang vielleicht beachten müssen.
4.4.1 Pfade
Zuerst müssen wir natürlich diesen Begriff klären: Ein Pfad gibt einen Weg durch den hierarchischen Verzeichnisbaum hin zu einem bestimmten Ziel an.
Eine vollständige Verzeichnisangabe wie /home/user beschreibt also auch einen Pfad, der angibt, wie man zu ebendiesem Verzeichnis gelangt.
Pfadnamen
Auch den Unterschied zwischen absoluten und relativen Pfaden kennen Sie bereits aus vorherigen Kapiteln. An dieser Stelle möchten wir allerdings einige zusätzliche Hinweise zu diesen Pfadarten geben.
Es gibt folgende Möglichkeiten zur Verzeichnisangabe:
-
».«
Der Punkt (.) bezeichnet das aktuelle Arbeitsverzeichnis. Ein Wechsel in dieses Verzeichnis mit cd . führt also dazu, dass das Verzeichnis gar nicht gewechselt wird. -
»..«
Zwei Punkte geben das nächsthöhere Verzeichnis an. Befänden Sie sich also im Verzeichnis /usr/local/bin, hätte ein cd .. den Wechsel in /usr/local zur Folge. Ein weiterer Aufruf von cd .. würde in das Verzeichnis /usr wechseln und ein weiterer in das Verzeichnis /. -
»~-«
Eine Tilde mit Minuszeichen zeigt auf das Verzeichnis, in dem Sie sich vor dem letzten cd-Aufruf befanden. -
»~«
Der Tilde-Operator (~) bezeichnet das Heimatverzeichnis des Benutzers. Ein Spezialfall ist ~Name, wobei Name der Account eines lokalen Benutzers sein muss. -
$HOME
Die globale Variable $HOME wird beim Login eines Benutzers gesetzt und zeigt auf dessen Heimatverzeichnis. -
kein Parameter
Ein parameterloser cd-Aufruf wechselt in das Heimatverzeichnis des Benutzers.
Eine Kombination des Pfadnamens mithilfe dieser Abkürzungen ist natürlich auch problemlos möglich. Der folgende cd-Aufruf wechselt in das Heimatverzeichnis des Benutzers (~), dort in das Unterverzeichnis Verzeichnis/, verlässt durch ../ dieses Verzeichnis wieder (somit landet man wieder im Heimatverzeichnis) und anschließend in das Unterverzeichnis buch/.
$ pwd /usr/local $ cd /Verzeichnis/../buch/ $ pwd /home/swendzel/buch
Listing 4.11 Beispiel für einen Verzeichniswechsel
4.4.2 Und das Ganze mit Pfaden ...
Natürlich können Sie diese ganzen »speziellen« Angaben für Verzeichnisse jeweils mit weiteren, komplettierenden Pfaden kombinieren. So wirkt ein .. immer relativ, ein $HOME hingegen absolut.
Schauen wir uns zum besseren Verständnis ein kleines Beispiel an:
// Wir befinden uns in … $ pwd /usr/local // ins Arbeitsverzeichnis wechseln (kein Effekt): $ cd . ; pwd /usr/local // nächsthöheres Verzeichnis: $ cd .. ; pwd /usr // absolute Pfadangabe: $ cd /usr/local/bin; pwd /usr/local/bin // … und eine simple relative Pfadangabe $ pwd /usr/local $ cd share/slrn ; pwd /usr/local/share/slrn //… komplizierter: $ pwd /usr/local/bin $ cd ../../lib/modules; pwd /usr/lib/modules //… und völlig sinnlos: $ cd /usr/lib/../local/bin; pwd /usr/local/bin
Listing 4.12 Verzeichniswechsel auf Unix-Art