pwd
- Ausgeben des aktuellen Verzeichnissesls
- Auflisten von Dateien und Verzeichnissencd
- Wechseln des Verzeichnissesmkdir
- Erzeugen von Verzeichnissencp
- Kopieren von Dateienmore
- Anzeigen von Dateienmv
- Verschieben und Umbenennen von Dateien und Verzeichnissenrm
- Löschen von Dateien und Verzeichnissenrmdir
- Entfernen leerer Verzeichnisse.datei
)find
+ locate
- Finden von Dateiengzip
- Packen und Entpacken von Dateiensplit
- geteilte Dateientar
- Archivieren von Dateienfile
- Ermitteln von Dateitypensed
- Stream EDitorUm mit Ihrem System arbeiten zu können, müssen Sie etwas über das Erzeugen, Verschieben, Umbenennen und Löschen von Dateien und Verzeichnissen erfahren.
Zunächst ist es jedoch wichtig zu wissen, an welcher Stelle des Verzeichnisbaumes
man sich befindet. Wie schon beschrieben, „befinden“ Sie sich nach dem
Anmelden am System in Ihrem Heimat-Verzeichnis. Sie können dies mit dem Kommando pwd
überprüfen. Die Ausgabe sollte in etwa so
aussehen:
bash-2.02$ pwd /home/fr
Wobei auf Ihrem System statt fr
Ihr eigener Benutzername, mit dem Sie sich
angemeldet haben, erscheint.
Dieses Kommando zeigt, wenn es ohne weitere Parameter verwendet wird,
Dateien in dem aktuellen Verzeichnis an. Nach dem Anmelden an einem neu
installierten Debian GNU/Linux-System befinden Sie sich in Ihrem Heimat-Verzeichnis,
und dieses ist leer. Das Kommando ls
wird also nichts anzeigen. (Das Verzeichnis ist
nicht wirklich leer, Sie sehen lediglich mit dem Kommando ls
ohne Parameter nicht die angelegten Dateien.)
Sie können aber auch das Kommando ls
mit einem Pfad als Option aufrufen. Beispielsweise
zeigt ls /
das „root“-Verzeichnis des Systems
an.
Mit diesem Kommando können Sie in ein anderes Verzeichnis (directory)
wechseln.
cd /tmp
wechselt beispielsweise in das Verzeichnis für
temporäre Dateien unterhalb von /
.
Auf zwei Besonderheiten möchte ich an dieser Stelle eingehen, die nicht nur mit
dem Kommando cd
funktionieren, aber zum besseren Verständnis hier
gut untergebracht sind.
Das Zeichen ~
steht als Abkürzung für den kompletten Pfad zu
Ihrem privaten Heimat-Verzeichnis. cd
mit der Option ~
, also cd ~
, wechselt ins Heimat-Verzeichnis.
Weiterhin möchte man häufig in ein in der Struktur höher gelegenes Verzeichnis
wechseln. Sicher könnte man mit pwd
nachsehen, wo man sich gerade befindet und dann
dem Kommando cd
den passenden Pfad übergeben. Als einfache
Alternative steht aber das Kürzel ..
für das übergeordnete Verzeichnis
zur Verfügung. cd ..
wechselt also in das unmittelbar übergeordnete
Verzeichnis (beachten Sie das Leerzeichen).
Wurde in ein anderes Verzeichnis durch Angeben eines
Pfadnamen gewechselt, so kann mit dem Kommando cd -
in das letzte Verzeichnis
gewechselt werden.
Eine weitere Abkürzung stellt .
dar. Diese steht für das aktuelle Verzeichnis, in
dem Sie sich gerade befinden, doch dazu kommen wir gleich in einem anderen
Beispiel.
Mit diesem Kommando können Sie weitere Verzeichnisse anlegen. Wechseln
Sie mit cd ~
in Ihr Heimat-Verzeichnis, und erzeugen Sie ein
Verzeichnis test
(mit
mkdir test
). Überprüfen Sie mit ls
, ob es funktioniert hat. Erzeugen Sie nach
Belieben einige weitere Verzeichnisse, auch unterhalb von test
.
Mit diesem Kommando können Sie Kopien von Dateien erzeugen. Kopieren Sie
die Datei /etc/profile
mit
cp /etc/profile .
in Ihr Heimat-Verzeichnis (hier also
das versprochene Beispiel mit nur einem Punkt). Prüfen Sie mit ls
, ob sich in Ihrem Verzeichnis nun eine Datei
namens
profile
befindet.
more profile
zeigt Ihnen den Inhalt der Datei profile
seitenweise auf der Konsole an. Sie können
mit der SPACE-Taste seitenweise weiterblättern und mit der Taste q
das Programm more
wieder verlassen. more
zeigt am unteren Bildschirmrand die aktuelle
Position in der Datei in Prozent an. Am Ende einer Datei wird more
automatisch beendet. more
kann, wie die meisten anderen Programme auch,
über Optionen auf der Kommandozeile gesteuert werden. Sie können diese Optionen auch
in die Umgebungsvariable MORE
schreiben; die Optionen werden dann bei jedem
Aufruf von more
benutzt.
Lesen Sie die Manual-Seite zu more
, das Programm hat noch einige andere
interessante Möglichkeiten.
Wenn Ihnen die Optionen von
more
nicht ausreichen, sollten Sie einen Blick auf
das Programm
less
werfen. Es verfügt über die gleichen Funktionen,
wurde aber noch um einige nützliche Funktionen erweitert.
Zum Verschieben von Dateien benötigt das Kommando
mv
mindestens zwei Parameter: der erste Parameter ist
die Quelldatei, der zweite die Zieldatei. Verschieben Sie die Datei profile
mit mv profile test
in das erstellte Verzeichnis test
. mv
dient aber auch zum Umbenennen von Dateien.
Wechseln Sie in das Verzeichnis test
, und benennen Sie die Datei profile
in testdatei
um (mv profile testdatei
).
Weiterhin können Sie mit mv
auch Verzeichnisse verschieben oder umbenennen,
die Syntax unterscheidet sich dabei nicht, egal ob Sie mit Dateien oder
Verzeichnissen arbeiten.
Beachten Sie, dass es mit mv
nicht möglich ist, mehrere Dateien auf einmal
umzubenennen. Hierzu bedarf es eines kleinen Skriptes oder anderer entsprechender
Hilfsmittel.
Mit dem Kommando
rm
können Sie eine oder mehrere Dateien löschen. Im
einfachsten Fall geben Sie den Namen der zu löschenden Datei an, also: rm ichwillweg.txt
(Sollte diese nicht existieren, so
können Sie sie mit dem Kommando touch ichwillweg.txt
anlegen). Als Parameter kann dem
Kommando rm
eine Reihe von Dateinamen mitgegeben werden, diese
werden durch Leerzeichen getrennt: rm ichwillweg.txt ichauch.txt metoo.asc removeme.txt
done.sh
; dieses Kommando löscht fünf Dateien von der Festplatte. An
dieser Stelle ein wichtiger Hinweis: Es gibt kein
undelete
unter Linux. Dateien, die Sie mit rm
gelöscht haben, können Sie nicht zurückholen. (Es
gibt Programme, die auch mit dem
ext3
-Dateisystem gelöschte Dateien zurückholen
können. Dies ist aber momentan noch in der Entwicklung.)
Wenn Sie ein Verzeichnis inklusive aller darin enthaltenen Dateien löschen
möchten, können Sie dies auch mit dem Kommando rm
erledigen. Hierzu dient die Option -rf
. Ein Beispiel: rm -rf /home/fr/test/
löscht im Home-Verzeichnis das
Verzeichnis test
mit allen Dateien und Unterverzeichnissen.
Etwas, was Sie nicht ausprobieren sollten (man findet das manchmal, weil sich Leute
einen Spaß daraus machen...). Ein weiteres Beispiel wäre Folgendes (nicht
abtippen!!!): rm -rf /
(nicht abtippen!!!). Wie schon beschrieben,
stellt /
das Startverzeichnis des gesamten Verzeichnisbaums
dar. Sie würden also Ihr komplettes System von der Festplatte verbannen; Fallen Sie
also nicht auf diesen kleinen Spaß herein!
Nun fehlt uns noch ein Kommando, um lediglich ein Verzeichnis, in dem sich keine
Dateien befinden, zu entfernen. rmdir
mit dem Verzeichnisnamen erledigt dies für uns.
Natürlich lässt sich auch rm
mit den entsprechenden Optionen dafür nutzen. Sie
können selbst entscheiden, welches Kommando Sie benutzen wollen... Noch schnell ein
Beispiel: rmdir test
entfernt das Verzeichnis test
im aktuellen Verzeichnis.
Namen von versteckten Dateien oder Verzeichnissen beginnen mit einem Punkt (.).
Sie können das Kommando ls
mit der Option -a
dazu bringen, auch diese versteckten Dateien
anzuzeigen. Sie können das sehr einfach in Ihrem Heimat-Verzeichnis ausprobieren;
dort werden bei der Einrichtung eines neuen Benutzers und später durch verschiedene
Programme diverse versteckte Dateien und Verzeichnisse angelegt.
Wechseln Sie in Ihr Heimat-Verzeichnis (mit dem Kommando cd
) und sehen Sie sich den Inhalt des Verzeichnisses
einmal an, inklusive der versteckten Dateien (mit dem Kommando ls -la
). Sie sehen nun die „normalen“
Dateien sowie auch die versteckten Dateien. Dabei wird Ihnen vielleicht auffallen,
dass es zwei etwas außergewöhnliche Dateien, nämlich .
und ..
, gibt. Diese stellen das aktuelle Verzeichnis
„.“, in dem Sie sich befinden, sowie das übergeordnete Verzeichnis „
..
“ dar. Wenn Sie das Kommando ls
mit der Option -lA
benutzen, werden diese beiden Dateien nicht mit
angezeigt.
Der Grund für versteckte Dateien liegt nicht in der Geheimhaltung von Daten. Vielmehr ist es im täglichen Umgang mit dem System nicht sinnvoll, alle möglichen Dateien anzuzeigen, die sich in Ihrem Heimat-Verzeichnis befinden. Viele Programme legen dort auch individuelle Konfigurationsdateien ab. Es hat sich eingebürgert, diese Dateien oder Verzeichnisse mit einem Punkt beginnen zu lassen, so dass diese nicht bei der normalen Arbeit mit Dateien stören.
Über diese Konfigurationsdateien in Ihrem Heimat-Verzeichnis können Sie das
Verhalten oder Aussehen von Programmen verändern. Diese Änderungen sind nur wirksam,
wenn Sie sich mit Ihrem Benutzernamen am System angemeldet haben. Systemweite
Konfigurationsdateien finden Sie im Verzeichnis /etc/
.
Um Dateien in Ihrem System zu finden, stehen Ihnen auf der Kommandozeile zwei
Programme zur Verfügung: find
und locate
. Mit dem Programm
find
können Sie die Festplatte nach Dateien
durchsuchen; dies kann je nach Größe der Festplatten einige Zeit dauern. find
verfügt über sehr viele Parameter, die Sie in
der Manpage nachlesen
können.
bash-2.03$ find --help Usage: find [path...] [expression] default path is the current directory; default expression is -print expression may consist of: operators (decreasing precedence; -and is implicit where no others are given): ( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2 EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2 options (always true): -daystart -depth -follow --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf --version -xdev tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME -ilname PATTERN -iname PATTERN -inum N -ipath PATTERN -iregex PATTERN -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN -size N[bckw] -true -type [bcdpfls] -uid N -used N -user NAME -xtype [bcdpfls] actions: -exec COMMAND ; -fprint FILE -fprint0 FILE -fprintf FILE FORMAT -ok COMMAND ; -print -print0 -printf FORMAT -prune -ls
Für den normalen Einsatz ist es allerdings ausreichend, wenn Sie sich folgendes Beispiel einprägen:
bash-2.02$ find / -name resolv.conf /etc/resolv.conf find: /var/spool/cron/atjobs: Permission denied find: /var/spool/cron/atspool: Permission denied find: /var/lib/xdm/authdir: Permission denied
Nach einiger Zeit hat find
die Datei im Verzeichnis /etc/
gefunden. Für Verzeichnisse, auf die Sie keinen
Zugriff haben, gibt find
eine entsprechende Fehlermeldung aus. Direkt
hinter dem Kommando
find
können Sie das Verzeichnis angeben, in dem mit
der Suche begonnen werden soll. Im Beispiel wird das gesamte Dateisystem (/
) durchsucht. Wenn Sie den Namen einer Datei nicht
genau kennen, können Sie auch nur einen Teil des Namens angeben und den Rest mit den
üblichen Wildcards ersetzen. Beachten Sie, dass jedes Kommando zuerst von der Shell
interpretiert und dann ausgeführt wird. Sie müssen also beispielsweise den *
vor der Shell „verstecken“, indem Sie
das Zeichen \
voranstellen. Die Shell wird nun das folgende
Zeichen ignorieren und direkt an das Kommando weiterreichen:
bash-2.02$ find / -name resol\* /etc/resolv.conf find: /var/spool/cron/atjobs: Permission denied find: /var/spool/cron/atspool: Permission denied find: /var/lib/xdm/authdir: Permission denied
Der zweite Weg, um Dateien zu finden, bietet sich über das Programm locate
. Dieses ist um einiges schneller beim Finden
von Dateien, da es eine Datenbank benutzt, die einmal am Tag aktualisiert wird. Es
ist also nicht notwendig, jedes Mal die komplette Festplatte zu durchsuchen.
Allerdings funktioniert das Aktualisieren der Datenbank nur, wenn Ihr Rechner zu der
Zeit in Betrieb ist, zu der auch diese Aktualisierung stattfinden soll. Da hierbei
die komplette Festplatte durchsucht wird, kann der Vorgang einige Zeit dauern.
Sollten Sie Ihren Rechner nicht rund um die Uhr laufen lassen, so können Sie auch
(als Administrator) die Datenbank von
locate
mit dem Kommando updatedb
zu jeder anderen Zeit aktualisieren. Sie
können aber auch die Zeit, zu der
updatedb
gestartet wird, in der Datei
/etc/crontab
Ihren Bedürfnissen anpassen.
Wenn Ihnen diese Änderungen zu kompliziert erscheinen, können Sie auch das Paket
anacron
installieren. Dieses sorgt dafür, dass Cronjobs,
die eigentlich während der Zeit ausgeführt werden sollten, zu der Sie Ihren Rechner
ausgeschaltet hatten, nachträglich ausgeführt werden. Das Programm cron
erlaubt es, zu bestimmten Zeitpunkten Programme
auszuführen. Meistens sind dies administrative Aufgaben wie der Aufruf von
updatedb
.
Dadurch, dass die Datenbank einmal täglich aktualisiert wird, kann locate
natürlich auch nur Dateien finden, die zu
diesem Zeitpunkt bereits vorhanden waren. Später erzeugte Dateien werden von locate
nicht angezeigt. Das klang jetzt etwas
aufwändig; locate
ist aber sehr leicht zu benutzen, wie
folgendes Beispiel
beweist:
bash-2.02$ locate XF86Config /etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config /usr/X11R6/lib/X11/XF86Config.eg /usr/X11R6/man/man5/XF86Config.5x.gz
Wie Sie sehen, findet locate
alle Dateien, die den Suchbegriff beinhalten,
ohne dass Sie mit Wildcards arbeiten müssen.
Wenn Sie
find
und
locate
vergleichen, werden Sie feststellen, dass find
leistungsfähiger ist, locate
dagegen im täglichen Gebrauch Dateien
wesentlich schneller finden kann.
Wenn Sie häufiger mit locate
arbeiten oder auch die Datenbank nicht als
Administrator aktualisieren lassen, werden Sie merken, dass unter Umständen nicht
alle Dateien angezeigt werden. Dies liegt daran, dass nur Dateien in die Datenbank
wandern, auf die das Programm
updatedb
Zugriff hat.
Weiterhin zeigt
locate
aber auch Dateien an, die ein normaler User
nicht sehen sollte; dies ist vielleicht nicht gewünscht.
Debian GNU/Linux beinhaltet noch das Paket
slocate
. Diese spezielle Version zeigt nur die Dateien
an, auf die der jeweilige User auch Zugriff hat. Sie können zusätzlich das Paket suidmanager
installieren. Damit kann slocate
über das dazugehörige Programm
suidregister
Ihnen auch die Dateien anzeigen, auf die
Sie normalerweise keinen Zugriff haben; natürlich erst nach Angabe des
entsprechenden Passwortes.
Beachten Sie bitte auch den Hinweis am Ende der Installation von slocate
:
sushi:/root# apt-get install slocate Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: slocate 0 packages upgraded, 1 newly installed, 0 to remove and 27 not upgraded. Need to get 0B/23.2kB of archives. After unpacking 143kB will be used. Selecting previously deselected package slocate. (Reading database ... 67742 files and directories currently installed.) Unpacking slocate (from .../utils/slocate_2.1-5.1.deb) ... Adding `diversion of /usr/bin/locate to /usr/bin/locate.notslocate by slocate' Adding `diversion of /usr/bin/updatedb to /usr/bin/updatedb.notslocate by slocate' Adding `diversion of /usr/share/man/man1/locate.1.gz to /usr/share/man/ man1/locate.notslocate.1.gz by slocate' Adding `diversion of /usr/share/man/man1/updatedb.1.gz to /usr/share/ man/man1/updatedb.notslocate.1.gz by slocate' Adding `diversion of /etc/cron.daily/find to /etc/cron.daily/find.notslocate by slocate' Setting up slocate (2.1-5.1) ... Adding group slocate (104)... Done. Changing permissions on: /usr/bin/slocate Changing permissions on: /var/lib/slocate to: 0750 WARNING: You should run '/etc/cron.daily/slocate' as root. locate will not work properly until you do or until it is run by cron (it is daily).
Manchmal ist es sinnvoll, große Dateien zu komprimieren, sei es, um
Festplattenplatz zu sparen, sei es, um Downloadzeiten zu verkürzen. Das Programm der
Wahl unter Debian GNU/Linux ist
gzip
(GNU Zip).
Erstellen Sie zuerst eine Testdatei, um mit gzip
experimentieren zu können, und sehen Sie sich
die Größe dieser Datei
an.
bash-2.03$ cd bash-2.03$ cp /etc/profile ./testdatei bash-2.03$ ls -l testdatei -rw-r--r-- 1 fr fr 359 Jan 20 20:10 testdatei
Komprimieren Sie nun die Datei testdatei
mit gzip
und sehen Sie sich wieder das Ergebnis
an:
bash-2.03$ gzip testdatei bash-2.03$ ls -l testdatei.gz -rw-r--r-- 1 fr fr 275 Jan 20 20:10 testdatei.gz
Beachten Sie, dass die Datei nun die Endung .gz
bekommen hat. Somit ist klar zu erkennen, mit
welchem Programm die Datei gepackt wurde und dass diese Datei überhaupt gepackt ist.
Um nun diese Datei wieder in den ursprünglichen Zustand zu versetzen, können Sie
gzip
mit der Option -d
aufrufen:
bash-2.03$ gzip -d testdatei.gz bash-2.03$ ls -l testdatei -rw-r--r-- 1 fr fr 359 Jan 20 20:10 testdatei
Somit ist der alte Zustand wieder hergestellt. Der Komprimierungserfolg ist bei so kleinen Dateien nicht sehr groß, Sie können das gleiche Experiment aber auch mit anderen, größeren Dateien probieren.
Sicher standen Sie schon einmal vor dem Problem, dass eine Datei zu groß war. Sei
es, um diese auf einem Medium zu transportieren oder um diese übers Netz zu
verschicken. Unter Debian GNU/Linux ist es mit den Programmen split
und cat
möglich, Dateien zu zerteilen und wieder
zusammenzufügen.
Kopieren Sie die Datei /bin/bash
in Ihr Heimat-Verzeichnis. Diese Datei hat
eine Größe von etwas mehr als 450
Kilobyte.
bash-2.03$ cd bash-2.03$ cp /bin/bash . bash-2.03$ ls -l bash -rwxr-xr-x 1 fr fr 461720 Jan 22 15:42 bash
Sie können nun diese Datei mit dem Kommando
split
in kleinere Stücke teilen. Hierzu benötigt split
Angaben über die maximale Größe der einzelnen
Fragmente sowie die Erweiterung des Dateinamens, die an jede der erzeugten
Teil-Dateien angehängt werden soll.
Mit der Option -b
teilen Sie split
die Größe mit. Ohne weitere Angaben geht split
davon aus, dass der Wert in Byte angegeben
wurde. Das ist natürlich nicht sehr praktikabel. Deshalb können Sie hinter dem
Zahlenwert die Buchstaben k
für Kilobyte oder m
für Megabyte angeben.
Als Kennung für die einzelnen Dateien erweitert split
den Dateinamen der ersten Datei mit aa
, den zweiten mit ab
und so weiter. Wenn Sie eine eigene Erweiterung
(Präfix) zu jeder Datei erzeugen wollen, so können Sie diese mit angeben. Hier im
Beispiel wird „einzel“
angegeben:
bash-2.03$ split -b100k bash einzel bash-2.03$ ls -l einzel* -rw-r--r-- 1 fr fr 102400 Jan 22 15:42 einzelaa -rw-r--r-- 1 fr fr 102400 Jan 22 15:42 einzelab -rw-r--r-- 1 fr fr 102400 Jan 22 15:42 einzelac -rw-r--r-- 1 fr fr 102400 Jan 22 15:42 einzelad -rw-r--r-- 1 fr fr 52120 Jan 22 15:42 einzelae
Das Zusammenfügen der Dateien ist ebenfalls sehr einfach.
bash-2.03$ cat einzel* > bash-neu bash-2.03$ ls -l bash* -rwxr-xr-x 1 fr fr 461720 Jan 22 15:42 bash -rw-r--r-- 1 fr fr 461720 Jan 22 15:43 bash-neu
Anhand der Länge sehen wir, dass die Datei wiederhergestellt wurde.
Häufig bekommt man Archive aus dem Netz in gepackter Form. Das Packen
von Archiven beinhaltet zwei Dinge: erstens die Zusammenfassung von mehreren Dateien
zu einer einzigen und zweitens das Komprimieren der Daten, um Festplattenplatz zu
sparen oder auch die Übertragungszeit zu verringern. Historisch gesehen, verteilen
sich diese beiden Funktionen unter Unix auch auf zwei Programme. Üblicherweise
benutzt man zum Zusammenfassen der Dateien das Programm tar
(Tape Archive) und zum Komprimieren das Programm
gzip
. Etwas bessere Ergebnisse beim Komprimieren von
Daten erreicht das (neuere) Programm
bzip2
. Die GNU-Version des Programms tar
, die auch bei Debian GNU/Linux verwendet wird,
kann beide Komprimierungsverfahren benutzen, so dass man nicht mit verschiedenen
Programmen hantieren muss.
Altgediente Programme, wie zum Beispiel
tar
, verfügen häufig über eine Vielzahl von
Funktionen. Einige davon werden heute kaum noch verwendet, sind aber trotzdem noch
aus Kompatibilitätsgründen verfügbar. Beispielsweise können Sie die Blockgröße
bestimmen, mit der die Daten auf das Medium geschrieben werden. Eine solche Funktion
werden Sie heute nur noch in sehr seltenen Fällen benötigen.
Einen Überblick über die Optionen von tar
bekommen Sie wie üblich mit der Option --help
:
bash-2.03$ tar --help GNU "tar" schreibt mehrere Dateien in ein Archiv auf Band oder Festplatte und kann einzelne Dateien aus diesem Archiv herausholen. Verwendung: tar [OPTION]... [Datei]... Beispiele: tar -cf archiv.tar foo bar # archiv.tar mit den Dateien foo und bar # erzeugen. tar -tvf archiv.tar # Inhalt von archiv.tar ausführlich anzeigen. tar -xf archiv.tar # Alle Dateien aus archiv.tar extrahieren Wenn eine lange Option ein Argument erfordert, ist es für die entsprechende kurze Option auch erforderlich. Das Gleiche gilt für optionale Argumente. Aktionen: -t, --list Inhalt eines Archivs anzeigen -x, --extract, --get Dateien aus Archiv holen -c, --create neues Archiv erzeugen -d, --diff, --compare Dateien im Archiv und im Dateisystem vergleichen -r, --append Dateien an das Archiv anhängen -u, --update nur Dateien anhängen, die jünger sind als ihre Archiv-Version -A, --catenate "tar"-Dateien an ein Archiv anhängen --concatenate wie '-A' --delete aus Archiv löschen (nicht auf Magnetbändern!) Operation modifiers: -W, --verify attempt to verify the archive after writing it --remove-files remove files after adding them to the archive -k, --keep-old-files don't replace existing files when extracting --overwrite overwrite existing files when extracting -U, --unlink-first remove each file prior to extracting over it --recursive-unlink empty hierarchies prior to extracting directory -S, --sparse handle sparse files efficiently -O, --to-stdout extract files to standard output -G, --incremental handle old GNU-format incremental backup -g, --listed-incremental=FILE handle new GNU-format incremental backup --ignore-failed-read do not exit with nonzero on unreadable files Datei-Eigenschaften: --owner=NAME Eigentümer für hinzugefügte Dateien auf NAME setzen --group=NAME Gruppe für hinzugefügte Dateien auf NAME setzen --mode=RECHTE Zugriffsrechte für hinzugefügte Dateien auf RECHTE setzen --atime-preserve Zugriffszeit beim Auspacken erhalten -m, --modification-time Änderungszeit beim Auspacken erhalten --same-owner Eigentümer beim Auspacken erhalten --no-same-owner Eigentümer beim Auspacken auf Ausführenden setzen --numeric-owner Zahlen für Benutzer bzw. Gruppen benutzen -p, --same-permissions Zugriffsrechte beim Auspacken erhalten --no-same-permissions Keine Zugriffsrechte erhalten --preserve-permissions wie '-p' -s, --same-order zu entpackende Dateinamen wie im Archiv sortieren --preserve-order wie '-s' --preserve wie '-p' und '-s' zusammen Geräteauswahl und -einstellung: -f, --file=ARCHIV Gerät oder Datei ARCHIV benutzen --force-local Archiv-Datei ist lokal, auch wenn der Name einen Doppelpunkt enthält --rsh-command=BEFEHL statt "rsh" den BEFEHL benutzen -[0-7][lmh] Laufwerk und Schreibdichte angeben -M, --multi-volume mehrteiliges Archiv anlegen/listen/ herausholen -L, --tape-length=ZAHL Medium wechseln, wenn ZAHL KBytes geschrieben sind -F, --info-script=DATEI am Ende jedes Mediums das Skript DATEI ausführen (impliziert '-M') --new-volume-script=DATEI wie '-F DATEI' --volno-file=DATEI Teil-Nummer in DATEI benutzen/aktualisieren Blockung des Gerätes: -b, --block-size=BLÖCKE BLÖCKE à 512 Bytes pro Record --record-size=GRÖSSE GRÖSSE Bytes pro Record, Vielfaches von 512 -i, --ignore-zeros Blöcke mit Nullen im Archiv ignorieren (heißt EOF) -B, --read-full-blocks Blockung beim Lesen ändern (für 4.2BSD "Pipes") Archive format selection: -V, --label=NAME create archive with volume name NAME PATTERN at list/extract time, a globbing PATTERN -o, --old-archive, --portability write a V7 format archive --posix write a POSIX format archive -j, --bzip2 filter the archive through bzip2 -z, --gzip, --ungzip filter the archive through gzip -Z, --compress, --uncompress filter the archive through compress --use-compress-program=PROG filter through PROG (must accept -d) Local file selection: -C, --directory=DIR change to directory DIR -T, --files-from=NAME get names to extract or create from file NAME --null -T reads null-terminated names, disable -C --exclude=PATTERN exclude files, given as a globbing PATTERN -X, --exclude-from=FILE exclude globbing patterns listed in FILE -P, --absolute-names don't strip leading `/'s from file names -h, --dereference dump instead the files symlinks point to --no-recursion avoid descending automatically in directories -l, --one-file-system stay in local file system when creating archive -K, --starting-file=NAME begin at file NAME in the archive -N, --newer=DATUM nur Dateien jünger als DATUM sichern --newer-mtime Datum und Zeit nur vergleichen, wenn sich der Datei-Inhalt geändert hat --after-date=DATUM wie '-N' --backup[=CONTROL] Sicherheitskopie vor dem Löschen, wählt Versionskontrolle --suffix=SUFFIX Sicherheitskopie vor dem Löschen, Namenserweiterung SUFFIX Informationen: --help Hilfe anzeigen und "tar" beenden --version Versionsnummer anzeigen und "tar" benden -v, --verbose zu bearbeitende Dateien ausführlich listen --checkpoint Verzeichnisnamen beim Lesen des Archivs zeigen --totals geschriebene Bytes beim Schreiben des Archivs zeigen -R, --block-number Blocknummer innerhalb des Archivs mit jeder Meldung zeigen -w, --interactive Bestätigung für jede Aktion verlangen --confirmation wie '-w' Die Namenserweiterung für Sicherheitskopien ist '~', wenn nicht mit --suffix oder der Umgebungsvariablen SIMPLE_BACKUP_SUFFIX etwas anderes eingestellt ist. Die Versionskontrolle kann mit --backup oder der Umgebungsvariablen VERSION_CONTROL gesetzt werden. Mögliche Werte sind: t, numbered nummerierte Sicherheitskopien nil, existing nummerierte Sicherheitskopien, wenn schon nummerierte vorhanden sind, sonst einfache never, simple immer einfache Sicherheitskopien GNU "tar" kann keine '--posix'-Archive lesen. Wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, sind GNU-Erweiterungen mit '--posix' nicht zulässig. Unterstützung für POSIX ist nur teilweise implementiert, rechne derzeit noch nicht damit! ARCHIV kann DATEI, RECHNER:DATEI oder BENUTZER@RECHNER:DATEI sein; DATEI kann eine Datei oder ein Gerät (z.B. ein Streamer) sein. Die Voreinstellung für _dieses_ "tar" ist '-f- -b20'. Fehlermeldungen an <bug-tar@gnu.org>.
Für den täglichen Gebrauch kommen Sie aber mit maximal zehn von diesen vielen Optionen aus. Auch in diesem Abschnitt zeigen wir einige Beispiele aus der Praxis auf.
Um mehrere Dateien in einem Archiv zusammenzufassen, benutzen Sie
die Optionen -cf
(create - erzeugen und file -
Datei):
linux:/home/fr# tar -cf /tmp/test.tar /etc/ tar: Removing leading `/' from member names
Dies erzeugt eine neue Datei (/tmp/test.tar
) mit allen Dateien und
Unterverzeichnissen aus dem Verzeichnis /etc/
.
tar
entfernt automatisch das jedem Pfad
vorangestellte /
, bevor die Dateien in das Archiv aufgenommen
werden. Dies verhindert, dass beim späteren Entpacken versehentlich Daten
überschrieben werden.
Um die Daten wieder zu entpacken, benutzen Sie die Option -x
(extract - entpacken). Beachten Sie, dass die
Daten per Voreinstellung immer an der aktuellen Position im Dateisystem entpackt
werden. Wenn Sie sich nicht sicher sind, erstellen Sie ein temporäres
Arbeitsverzeichnis und verschieben Sie danach die Daten an die gewünschte Stelle:
linux:/home/fr# mkdir bla linux:/home/fr# cd bla linux:/home/fr/bla# tar -xf /tmp/test.tar linux:/home/fr/bla# ls etc
tar zum Plaudern bringen... | |
---|---|
Benutzen Sie die zusätzliche Option |
Bisher haben wir tar
zum Packen von Dateien benutzt. Nun werden
wir das Archiv zusätzlich noch komprimieren. Hierzu stehen bei GNU-Tar die
Optionen -z
für das Komprimieren mit
gzip
und -j
zum Komprimieren mit
bzip2
zur Verfügung. Die Benutzung ist ganz
einfach: Verwenden Sie tar
wie oben gezeigt, und fügen Sie
beispielsweise die Option -z
hinzu.
Hier ein Beispiel, wie Sie ein gepacktes Archiv erzeugen können:
linux:/home/fr# tar cvfz /tmp/test.tar.gz /etc/
Beachten Sie, dass es üblich ist, entweder (wie hier gezeigt) die Endung .gz
anzuhängen oder aber die Kurzform .tgz
zu verwenden.
tar
kann mit beiden Endungen
„umgehen“, genau genommen ist der Dateiname völlig egal. Die
Endungen dienen nur der besseren Übersicht für den Benutzer.
Wenn Sie die Daten auf einem Tape-Streamer speichern wollen, können Sie die Daten auch direkt auf das Gerät speichern. Geben Sie dazu statt des Dateinamens des Archivs einfach das entsprechende Device an:
linux:/home/fr# tar cvfz /dev/st0 /etc/
Das Device
/dev/st0
wird von Streamern benutzt, die über
einen SCSI-Anschluss verfügen. Wenn Sie die Daten von diesem Gerät wieder
einlesen wollen, benutzen Sie dazu ebenfalls das entsprechende
Device.
linux:/home/fr# tar xvfz /dev/st0
Es ist üblich, Dateien so zu benennen, dass der Typ der Datei am Namen zu
erkennen ist. Programme sind nicht zwingend auf eine solche Endung angewiesen, diese
dient nur der besseren Übersicht für den Benutzer (mit Ausnahme von Dateinamen, die
fest in das Programm einkompiliert sind, wie zum Beispiel Namen von
Konfigurationsdateien). Textdateien bekommen die Endung .txt
, Perl-Programme die Endung .pl
und Bilder die Endung .jpeg
oder .tiff
und so weiter. Trotzdem kann es passieren, dass
Dateien entweder keine oder eine falsche Endung haben. Debian GNU/Linux stellt Ihnen
das Programm
file
zur Verfügung, das die meisten Dateitypen
ermitteln kann.
Das Programm file
ist denkbar einfach zu benutzen: Rufen Sie das
Programm einfach zusammen mit dem Namen der zu bestimmenden Datei(en) auf. Sie
können hier einen oder mehrere Dateinamen, auch mit Wildcards, angeben:
bash-2.03$ file /bin/bash /etc/passwd /etc/init.d/lpd /bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped /etc/passwd: ASCII text /etc/init.d/lpd: Bourne shell script text
file
listet nun die verschiedenen Dateinamen mit den
Dateitypen auf.
sed steht für Stream EDitor und ist ein Unix-Werkzeug, mit dem Texte bearbeitet werden können. Hierbei wird das Ergebniss auf der Standard-Ausgabe angezeigt - die Datei aus der gelesen wird wird nicht verändert. Dies kann mit einer speziellen Option -i
erzwungen werden. Alternativ kann man mit der Ausgabeumleitung >
die veränderte Daten in eine neue Datei schreiben.
In den meisten Fällen wird das Programm für das suchen und ersetzen von Texten in Dateien verwendet, hier ein kurzes Beispiel:
sed 's/Linux/Debian/g' unix.txt
Ergebniss: in der Datei unix.txt
wird jedes Vorkommen des Wortes „Linux“ durch das Wort „Debian“ ersetzt.
sed Beispiele | |
---|---|
Eine sehr schöne und umfangreiche Sammlung von Beispielen zu sed finden Sie hier: sed.sourceforge.net/sed1line_de.html. Auf der Homepage finden sich weitere umfassende Links zu diesem mächtigen Programm: sed.sourceforge.net/. |
© 1999 - 2024 | Das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg steht unter einer Creative Commons Namensnennung-Nicht Kommerziell-Keine Bearbeitung 3.0 Deutschland Lizenz.