Unix / Linux - Verzeichnisverwaltung
In diesem Kapitel werden wir uns ausführlich mit der Verzeichnisverwaltung unter Unix befassen.
Ein Verzeichnis ist eine Datei, deren Soloaufgabe darin besteht, die Dateinamen und die zugehörigen Informationen zu speichern. Alle Dateien, ob normal, speziell oder Verzeichnis, sind in Verzeichnissen enthalten.
Unix verwendet eine hierarchische Struktur zum Organisieren von Dateien und Verzeichnissen. Diese Struktur wird häufig als Verzeichnisbaum bezeichnet. Der Baum hat einen einzelnen Wurzelknoten, den Schrägstrich (/) und alle anderen Verzeichnisse sind darunter enthalten.
Home-Verzeichnis
Das Verzeichnis, in dem Sie sich beim ersten Anmelden befinden, wird als Ausgangsverzeichnis bezeichnet.
Sie werden einen Großteil Ihrer Arbeit in Ihrem Home-Verzeichnis und in den Unterverzeichnissen erledigen, die Sie zum Organisieren Ihrer Dateien erstellen.
Sie können jederzeit mit dem folgenden Befehl in Ihr Home-Verzeichnis wechseln:
$cd ~
$
Hier ~gibt das Ausgangsverzeichnis an. Angenommen, Sie müssen in das Home-Verzeichnis eines anderen Benutzers wechseln und den folgenden Befehl verwenden:
$cd ~username
$
Um in Ihr letztes Verzeichnis zu gelangen, können Sie den folgenden Befehl verwenden:
$cd -
$
Absolute / relative Pfadnamen
Verzeichnisse sind in einer Hierarchie mit root (/) oben angeordnet. Die Position einer Datei innerhalb der Hierarchie wird durch ihren Pfadnamen beschrieben.
Elemente eines Pfadnamens werden durch ein / getrennt. Ein Pfadname ist absolut, wenn er in Bezug auf root beschrieben wird, daher beginnen absolute Pfadnamen immer mit einem /.
Im Folgenden finden Sie einige Beispiele für absolute Dateinamen.
/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3
Ein Pfadname kann auch relativ zu Ihrem aktuellen Arbeitsverzeichnis sein. Relative Pfadnamen beginnen niemals mit /. In Bezug auf das Home-Verzeichnis von Benutzer amrood könnten einige Pfadnamen folgendermaßen aussehen:
chem/notes
personal/res
Geben Sie den Befehl ein, um jederzeit festzustellen, wo Sie sich innerhalb der Dateisystemhierarchie befinden pwd um das aktuelle Arbeitsverzeichnis zu drucken -
$pwd
/user0/home/amrood
$
Verzeichnisse auflisten
Um die Dateien in einem Verzeichnis aufzulisten, können Sie die folgende Syntax verwenden:
$ls dirname
Das folgende Beispiel listet alle darin enthaltenen Dateien auf /usr/local Verzeichnis -
$ls /usr/local
X11 bin gimp jikes sbin
ace doc include lib share
atalk etc info man ami
Verzeichnisse erstellen
Wir werden jetzt verstehen, wie Verzeichnisse erstellt werden. Verzeichnisse werden mit dem folgenden Befehl erstellt:
$mkdir dirname
Hier ist Verzeichnis der absolute oder relative Pfadname des Verzeichnisses, das Sie erstellen möchten. Zum Beispiel der Befehl -
$mkdir mydir
$
Erstellt das Verzeichnis mydirim aktuellen Verzeichnis. Hier ist ein weiteres Beispiel -
$mkdir /tmp/test-dir
$
Dieser Befehl erstellt das Verzeichnis test-dir in dem /tmpVerzeichnis. Dasmkdir Der Befehl erzeugt keine Ausgabe, wenn das angeforderte Verzeichnis erfolgreich erstellt wurde.
Wenn Sie mehr als ein Verzeichnis in der Befehlszeile angeben, mkdirerstellt jedes der Verzeichnisse. Zum Beispiel -
$mkdir docs pub
$
Erstellt die Verzeichnisse docs und pub unter dem aktuellen Verzeichnis.
Übergeordnete Verzeichnisse erstellen
Wir werden nun verstehen, wie übergeordnete Verzeichnisse erstellt werden. Wenn Sie ein Verzeichnis erstellen möchten, sind manchmal das übergeordnete Verzeichnis oder die übergeordneten Verzeichnisse nicht vorhanden. In diesem Fall,mkdir gibt eine Fehlermeldung wie folgt aus:
$mkdir /tmp/amrood/test
mkdir: Failed to make directory "/tmp/amrood/test";
No such file or directory
$
In solchen Fällen können Sie die angeben -p Option zum mkdirBefehl. Es werden alle notwendigen Verzeichnisse für Sie erstellt. Zum Beispiel -
$mkdir -p /tmp/amrood/test
$
Der obige Befehl erstellt alle erforderlichen übergeordneten Verzeichnisse.
Verzeichnisse entfernen
Verzeichnisse können mit der gelöscht werden rmdir Befehl wie folgt -
$rmdir dirname
$
Note - Um ein Verzeichnis zu entfernen, stellen Sie sicher, dass es leer ist. Dies bedeutet, dass sich in diesem Verzeichnis keine Datei oder Unterverzeichnis befinden darf.
Sie können mehrere Verzeichnisse gleichzeitig wie folgt entfernen:
$rmdir dirname1 dirname2 dirname3
$
Der obige Befehl entfernt die Verzeichnisse dirname1, dirname2 und dirname3, wenn sie leer sind. Dasrmdir Befehl erzeugt keine Ausgabe, wenn er erfolgreich ist.
Verzeichnisse ändern
Du kannst den ... benutzen cdBefehl, mehr zu tun als nur in ein Ausgangsverzeichnis zu wechseln. Sie können damit in ein beliebiges Verzeichnis wechseln, indem Sie einen gültigen absoluten oder relativen Pfad angeben. Die Syntax ist wie folgt -
$cd dirname
$
Hier, dirnameist der Name des Verzeichnisses, in das Sie wechseln möchten. Zum Beispiel der Befehl -
$cd /usr/local/bin
$
Änderungen am Verzeichnis /usr/local/bin. Aus diesem Verzeichnis können Siecd in das Verzeichnis /usr/home/amrood unter Verwendung des folgenden relativen Pfades -
$cd ../../home/amrood
$
Verzeichnisse umbenennen
Das mv (move)Befehl kann auch verwendet werden, um ein Verzeichnis umzubenennen. Die Syntax lautet wie folgt:
$mv olddir newdir
$
Sie können ein Verzeichnis umbenennen mydir zu yourdir wie folgt -
$mv mydir yourdir
$
Die Verzeichnisse. (Punkt) und .. (Punkt Punkt)
Das filename .(Punkt) stellt das aktuelle Arbeitsverzeichnis dar; und diefilename .. (Punkt Punkt) repräsentiert das Verzeichnis eine Ebene über dem aktuellen Arbeitsverzeichnis, das häufig als übergeordnetes Verzeichnis bezeichnet wird.
Wenn wir den Befehl eingeben, um eine Liste der aktuellen Arbeitsverzeichnisse / -dateien anzuzeigen, verwenden Sie die -a option um alle Dateien und die aufzulisten -l option Um die lange Auflistung bereitzustellen, erhalten wir das folgende Ergebnis.
$ls -la
drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 .
drwxr-xr-x 60 root 1536 Jul 13 14:18 ..
---------- 1 teacher class 4210 May 1 08:27 .profile
-rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo
$