Hallo, Am Fre, 09 Jun 2006, Andre Tann schrieb:
David Haller, Freitag, 9. Juni 2006 04:47:
* was GENAU macht das ssh?
Hier würde ich sagen: ssh stellt die Verbindung zwischen dem lokalen und dem entfernten Rechner her, und leitet stdout des lokalen tar auf das stdin des entfernten tar. Richtig?
Jep. Entscheidend hier also ist das Verbinden des stdout|stdin via Netz. Die Pipe wird praktisch durchs Netz "verlaengert" ;)
* was GENAU macht das einpackende tar (wohin schreibt es das Archiv)?
Es schreibt auf sein stdout, wegen des einsamen - .
* was GENAU macht das auspackende tar (woher liest es das Archiv)?
Es liest aus stdin, ebenfalls wegen des - , und schreibt wegen des x und des f die Dateien als solche.
Nein. Hinter -f wird der Dateiname, in den zu Schreiben bzw. aus dem zu Lesen ist, angegeben. Ich habe bei diesen Befehlen mit Absicht die portable Syntax, die auch !GNU tar Versionen koenne gewaehlt. tar -c -f - -p /was/eingepackt/werden/soll ^^^^ GNU tar hat zumindest auf Linux den Default "stdout" bzw. "stdin" als Archivnamen, ABER: ==== info (tar)file ==== For example, in this `tar' command, $ tar -cvf collection.tar blues folk jazz `collection.tar' is the name of the archive. It must directly follow the `-f' option, since whatever directly follows `-f' *will* end up naming the archive. If you neglect to specify an archive name, you may end up overwriting a file in the working directory with the archive you create since `tar' will use this file's name for the archive name. ==== Bei aktuellen GNU tar gilt dies AFAIR nicht mehr. Da wird AFAIR das erste Argument als "archive name" genommen. ==== If you do not name the archive, `tar' uses the value of the environment variable `TAPE' as the file name for the archive. If that is not available, `tar' uses a default, compiled-in archive name, usually that for tape unit zero (ie. `/dev/tu00'). `tar' always needs an archive name. ==== Anderswo, z.B. unter BSD oder wenn der Admin z.B. TAPE definiert oder tar anders kompiliert hat kann der Default abweichen. Ansonsten und in der Wirkung hast du's aber richtig gelesen :)
Jetzt hätte ich aber noch eine Frage: Du schriebst (bzw. zitiertest):
Unix: Alles ist ein File, und was kein File ist, hat sich gefaelligst als ein solches zu tarnen.
Angenommen, ich möchte eine Partition auslesen. Wieso muß ich dd if=/dev/hda of=/datei schreiben, und nicht einfach cat /dev/hda > /datei
Das hat Michael schon gut beantwortet :) -dnh -- "Lege die eine Hand in die Gefriertruhe und die andere auf eine heiße Herdplatte. Im Durchschnitt ist das dann ein angenehmes Gefühl." [CB's Lehrer erklaert den "Durchschnitt"] -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com