Hallo, Am Sun, 10 Jul 2005, Joachim Kieferle schrieb:
ABER: die Option -f steht soweit ich es spontan weiss für "file", d.h. es handelt sich dabei normalerweise um einen Filenamen. Also z.B. tar -cvf test.tar /home /etc.
Joachim, Joachim, Joachim... Unter Unix ist alles ausser Verzeichnissen eine Datei. Und selbst die Verzeichnisse sind eigentlich Dateien, nur kommt man an diese nicht mit normalen Mitteln ran. Also: bei tar kann man alle Dateien angeben, in die man schreiben kann. Im folgenden halte ich Pfade extrem kurz. z.B. eine normale Datei: tar -cf /irgendwo/foo.tar /foo Oder auch ein symlink: ln -s /foo.tar /irgendwo/foo.tar tar -cf /irgendwo/foo.tar /foo tar -xf /foo.tar z.B. stdout oder eine Pipe: tar -cf - /foo/ > /irgendwo/foo.tar tar -cf - /foo/ | ssh foo@nocheinhost "tar -C /da/wos/hinsoll/ -xf -" ssh root@192.168.0.2 "( cd /mnt/hda1; tar cp --atime-preserve \ --exclude=hiberfil.sys --exclude=pagefile.sys \ --exclude=WINDOWS/system32/shgina.dll . ; ) " \ | tar xvp --atime-preserve Letzteres (eine Zeile!) ist ein reales Beispiel mit dem ich neulich ne XP-Partition gesichert habe, wobei auf dem Laptop ein Knoppix mit nem sshd lief und die XP-Partition unter /mnt/hda1 gemounted war. Und ja, die Dateien sind korrekt angekommen. Und wurden nach der Neuinstallation von XP erfolgreich zurueckkopiert. Man kann einen tarball auch ganz ohne Dateisystem direkt auf ein Band schreiben, also ein Char-Device: tar -cf /dev/st0 /foo Und vermutlich auch auf ein Block-Device, z.B. eine Partition/Festplatte: tar -cf /dev/hdXY /foo Das habe ich aber noch nicht getestet. Und evtl. sogar eine CD schreiben bzw. von dort lesen? tar -c /foo | cdrecord dev=... und tar -xf /dev/sr0 Keine Ahnung das mit CD aber funktioniert ;) Auch ein Socket ist eine Datei, ebenso wie eine "named pipe" ==== etwas sinnlos ;) === mknod /tmp/FIFO p tar -cf /tmp/FIFO cat /tmp/FIFO > /foo.tar ==== Noch Fragen? -dnh -- 144: Maxmimale Entfernung zweier Hubs 12800 km. (Roger Schwendker)