[Zurück] [Home] [Weiter]       http://rowa.giso.de  

Eine frei verwendbare Unix-Grundlagenschulung mit muLinux

Um diese Übung auf unsere Arbeitsdiskette zu speichern, legen wir diese in das Disketten-Laufwerk, mounten das Laufwerk nach /a und wechseln in das Verzeichnis /a.
/# mount /dev/fd0 /a
/# cd /a
/a# _

Kopieren, Verschieben, Umbenennen, Links

Kopieren von Dateien und Verzeichnissen

Der Befehl zum Kopieren von Dateien und Verzeichnissen heißt cp (engl. copy) und kann unterschiedlich genutzt werden.

Kopieren einer Datei

Mit cp Quelldatei Zieldatei wird eine Datei kopiert. So kann z. B. eine Sicherheitskopie dieser Datei erzeugt werden. Sehr zu empfehlen ist dies, wenn Konfigurations-Dateien im Verzeichnis /etc geändert werden sollen.

/# cd /etc
/etc# cp passwd passwd.original

In diesem Beispiel haben wir die Datei passwd geklont. Falls wir Fehler beim Editieren von passwd machen, brauchen wir nur passwd zu löschen und passwd.original in passwd umzubenennen.

Die kopierte Datei wird mit den gleichen Zugriffsrechten erstellt und erhält als Erstellungsdatum und letztes Änderungsdatum das aktuelle Datum beim Kopieren. Der Benutzer, der eine Datei kopieren will, muß berechtigt sein, die zu kopierende Datei zu lesen und muß Schreiberlaubnis für das Verzeichnis haben, in dem die neue Datei erzeugt wird. Der Benutzer wird also auch zugleich "Besitzer" der neu angelegten Datei - auch dann, wenn ihm die "alte" Datei nicht gehört.

/etc# ls -l passwd*
1 -rw-r--r--   1 craxi    psi           708 Feb 27  1999 passwd
1 -rw-r--r--   1 root     root          708 Oct 31 13:18 passwd.original

Wir können auch eine Datei auf die Diskette kopieren. Die Diskette muß dazu in /a gemountet sein.

/etc# cp passwd /a

Kopieren mehrerer Dateien

Mit dem cp-Befehl können auch mehrere Dateien gleichzeitig kopiert werden, wenn als Ziel ein Verzeichnis angegeben wird.

/etc# cp passwd passwd.original /a

Die ursprüngliche Datei /a/passwd wurde hiermit überschrieben. Wir können dies mit folgendem Befehl testen. Betrachten wir dazu das Änderungsdatum.

/etc# ls -l /a

Soll vor dem Überschreiben nachgefragt werden, muß die Option -i (interactive) angegeben werden.

/etc# cp -i passwd passwd.original /a
cp: overwrite `/a/passwd`? y
cp: overwrite `/a/passwd.original`? y
/etc# _

Mit Hilfe des wildcard-Zeichens * können auch mehrere Dateien kopiert werden.

/etc# cp i* /a

So werden z. B. alle Dateien mit einem kleinen i am Anfang des Dateienamens auf die Diskette kopiert.

Kopieren von Verzeichnissen mit Inhalt

Mit Hilfe der Option -r (rekursiv) können wir ganze Verzeichnisse mit Inhalt (Dateien, Unterverzeichnisse) kopieren.

/etc# cp -r /etc/ppp /a

Die Option -r haben wir auch beim Befehl rm kennengelernt. Diese wollen wir gleich anwenden, um den Inhalt der Diskette zu löschen:

/etc# rm -r /a/*

Verschieben und Umbenennen von Dateien

Das Verschieben entspricht dem Kopieren mit dem Unterschied, daß die Original-Datei gelöscht wird. Der Befehl heißt mv (move).

/etc# mv passwd /a

Jetzt ist die Datei passwd zwar auf der Diskette aber nicht mehr im Verzeichnis /etc, was bei einem "richtigen" Unix fatale Folgen hätte. Deshalb schiebe bitte die Datei wieder zurück.

Umbenennen von Dateien

Für das Umbenennen von Dateien wird ebenfalls der Befehl mv verwendet. Wir wollen diesen Befehl nutzen, um den Befehl ls in dir umzubenennen. So kann ein DOS-Nutzer weiterhin seinen geliebten Befehl zu Anzeige des Verzeichnis-Inhaltes eingeben. Natürlich ist diese Verfahrensweise sehr unpraktisch und verprellt Unix-Kenner. Aber es ist ein gutes Beispiel für das Umbenennen.

/etc# cd /bin
/bin# mv ls dir
/bin# ls
/bin/ls: not found
/bin# dir
Verzeichnisinhalt
Benenne bitte die Datei dir wieder in ls um. Wir können die Datei ls auch kopieren um diese auch als dir zur Verfügung zu haben. Es gibt aber einen eleganteren Weg.

Links - Mehrere Namen für eine Datei

Wir können einer Datei mehrere Namen vergeben. Der neue Dateiename erscheint im Verzeichnis wie eine eigene Datei, belegt aber keinen zusätzlichen Speicher. Der Befehl dazu ist ln (verbinden, engl. link).

/bin# ln ls dir

Jetzt funktioniert sowohl ls als auch dir.

Eine weitere Anwendung wäre die die Zuordnung des Diskettenlaufwerkes als unser Heimatverzeichnis /home/Robert. So könnten wir in unserem Verzeichnis arbeiten und gleichzeitig wird alles auf Diskette gespeichert. Wie schon gesagt nenne bitte das Heimatverzeichnis nach Deinem Namen.

/bin# ln /a /home/Robert
Please use "ln -s" to link directories.
/bin# _

Was nun? Offensichtlich muß man bei der Verlinkung von Verzeichnissen (engl. directory) die Option - s (soft link) angeben:

/bin# ln -s /a /home/Robert
/bin# ls /home/Robert
Inhalt der Diskette
/bin# _

Wenn wir in das Verzeichnis /home/Robert gelangen, sind wir im Verzeichnis /a.

/bin# cd /a /home/Robert
/a# _

Um diese Übung zu beenden heben wir die mount-Zuordnung unserer Arbeitsdiskette auf.
/a# cd /
/# umount /a
/# _

[Zurück] [Home] [Weiter]