kleines bash Problem
Servus Leute, ich hab ein Problem mit einer Syntax ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht: tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar. Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-) Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ?? Hat das was mit stout zu tun? "tar" schmeißt aber immer noch alle Dateinamen, die ins Archiv wandern aus (=stout ??). Ich raffs nicht so ganz und im Netz hab ich in der letzten Stunde keine richtig gute Erklärung gefunden. Für einige von euch ist das aber sicherlich kein Problem. Wäre nett, wenn mir jemand hilft. Danke Alex
On Fri, 16 Feb 2001, Alex Klein wrote:
Servus Leute,
ich hab ein Problem mit einer Syntax
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ?? Hat das was mit stout zu tun? "tar" schmeißt aber immer noch alle Dateinamen, die ins Archiv wandern aus (=stout ??). Ich raffs nicht so ganz und im Netz hab ich in der letzten Stunde keine richtig gute Erklärung gefunden. Für einige von euch ist das aber sicherlich kein Problem. Wäre nett, wenn mir jemand hilft.
Hi Alex, versuch es mal mit einer 2 vor dem > so in der Form tar -cvf - /daten 2>... Dann sollten alle Fehlermeldungen in die Datei wandern und Dein tar-Strom in die Pipe. Das ist jetzt aber bloß so aus dem Kopf. Ungetestet. Gruß, Sven ------------------------------------------------------- Sven Bergner E-Mail: bergner@fh-worms.de Live long and prosper! Registered Linux-User #65111 -------------------------------------------------------
On Fre, 16 Feb 2001, you wrote:
Servus Leute,
ich hab ein Problem mit einer Syntax
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Hallo Alex! tar --create . | split --bytes=1500m - PREFIX oder tar --create . | split --bytes=1500m Die erste Version hat als Ausgabe PREFIXaa, PREFIXab ... Die zweite Version hat als Ausgabe das Defaultprefix x, also xaa, xab ...
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ?? Hat das was mit stout zu tun? "tar" schmeißt aber immer noch alle Dateinamen, die ins
Das "-" brauchst du nur, wenn die ein PREFIX angeben willst. seb
On 16 Feb 2001, at 15:25, Sebastian Huber wrote:
On Fre, 16 Feb 2001, you wrote:
Servus Leute,
ich hab ein Problem mit einer Syntax
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Hallo Alex! tar --create . | split --bytes=1500m - PREFIX oder tar --create . | split --bytes=1500m
Sorry ich checks nicht! Wohin geht jetzt der --verbose Output von tar? Das ist ja mein Problem. Das mit dem splitten geht einwandfrei, aber ich will den Befehl in ein Bash-Script einbauen. Und deshalb will ich auch ein Logfile, wo der tar-Befehl zur Kontrolle die verarbeiteten Dateinamen reinschreibt. Das Problem ist in meinen Augen die Pipe (|) kombiniert mit der Umleitung (>). Das Problem sollte also folgendermaßen gelöst werden: 1. tar Archiv > 2GB ---> splitten 2. Bei der Erstellung des Archivs den Inhalt (Dateinamen) in eine Datei schreiben. Deshalb "tar -v". Trotzdem bin ich jedem dankbar, der sich versucht. tia Alex
Die erste Version hat als Ausgabe PREFIXaa, PREFIXab ... Die zweite Version hat als Ausgabe das Defaultprefix x, also xaa, xab ...
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ?? Hat das was mit stout zu tun? "tar" schmeißt aber immer noch alle Dateinamen, die ins
Das "-" brauchst du nur, wenn die ein PREFIX angeben willst.
seb
--------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Alex Klein schrieb am 16.Feb.2001:
On 16 Feb 2001, at 15:25, Sebastian Huber wrote:
Sorry ich checks nicht! Wohin geht jetzt der --verbose Output von tar? Das ist ja mein Problem. Das mit dem splitten geht
Die Ausgabe geht nach stderr. Sonst hättest Du keinen Chance.
einwandfrei, aber ich will den Befehl in ein Bash-Script einbauen.
Ob in einem Skript oder interaktiv ist sich gleich.
Und deshalb will ich auch ein Logfile, wo der tar-Befehl zur Kontrolle die verarbeiteten Dateinamen reinschreibt. Das Problem ist in meinen Augen die Pipe (|) kombiniert mit der Umleitung (>).
Geht nur deshalb, weil die Ausgabe von -v in die Fehlerausgabe geht, wenn dem nicht so wäre, wie sollte die arme shell es auseinanderhalten, ob es von -v käme, oder ob es die getarten Daten sind?
Das Problem sollte also folgendermaßen gelöst werden:
Siehe meine andere Mail. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/produkte/buecher/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/shar/doc/sdb/de/html/literatur.html |Zufallssignatur 5
Hallo, On Fre, 16 Feb 2001, Bernd Brodesser wrote:
* Alex Klein schrieb am 16.Feb.2001:
On 16 Feb 2001, at 15:25, Sebastian Huber wrote:
Sorry ich checks nicht! Wohin geht jetzt der --verbose Output von tar? Das ist ja mein Problem. Das mit dem splitten geht
Die Ausgabe geht nach stderr. Sonst hättest Du keinen Chance.
Doch ;) Siehe meine andere mail.
Geht nur deshalb, weil die Ausgabe von -v in die Fehlerausgabe geht, wenn dem nicht so wäre, wie sollte die arme shell es auseinanderhalten, ob es von -v käme, oder ob es die getarten Daten sind?
Aber nur wenn -f - angegeben wird. # tar -cvf test.tar scanner* 1>/dev/null # tar -cvf test.tar scanner* 2>/dev/null scanner.c.diff [..] # tar -cvf - 1>/dev/null scanner.c.diff [..] # tar -cvf - 2>/dev/null scanner.c.diff100644 764 144 5315 7241304111 11556 0 ustar dhusers--- [..nur(!) rest vom tar..]
Siehe meine andere Mail.
Ack. CU David -- F: Was sagt ein frisch Assimilierter zu seinem Ex-Captain? A: SCNR [Bernd Reinecke]
Hallo David, * David Haller schrieb am 16.Feb.2001:
On Fre, 16 Feb 2001, Bernd Brodesser wrote:
* Alex Klein schrieb am 16.Feb.2001:
On 16 Feb 2001, at 15:25, Sebastian Huber wrote:
Sorry ich checks nicht! Wohin geht jetzt der --verbose Output von tar? Das ist ja mein Problem. Das mit dem splitten geht
Die Ausgabe geht nach stderr. Sonst hättest Du keinen Chance.
Doch ;) Siehe meine andere mail.
Das funktioniert auch nur, weil ein Teil der Ausgabe nach stdout und der andere nach stderr geht. Würde tar beides nach stdout lenken, hättest Du keine Chance. Und nur das wollte ich sagen.
Geht nur deshalb, weil die Ausgabe von -v in die Fehlerausgabe geht, wenn dem nicht so wäre, wie sollte die arme shell es auseinanderhalten, ob es von -v käme, oder ob es die getarten Daten sind?
Aber nur wenn -f - angegeben wird.
Da hast Du Recht. Ist mir erst hinterher aufgefallen, nachdem Alex es geschrieben hat, da ich immer nur mit - getestet habe. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
Hallo Bernd, On Fre, 16 Feb 2001, Bernd Brodesser wrote:
* David Haller schrieb am 16.Feb.2001:
On Fre, 16 Feb 2001, Bernd Brodesser wrote:
* Alex Klein schrieb am 16.Feb.2001:
On 16 Feb 2001, at 15:25, Sebastian Huber wrote:
Sorry ich checks nicht! Wohin geht jetzt der --verbose Output von tar? Das ist ja mein Problem. Das mit dem splitten geht
Die Ausgabe geht nach stderr. Sonst hättest Du keinen Chance.
Doch ;) Siehe meine andere mail.
Das funktioniert auch nur, weil ein Teil der Ausgabe nach stdout und der andere nach stderr geht. Würde tar beides nach stdout lenken, hättest Du keine Chance. Und nur das wollte ich sagen.
Ack. Man _kann_ aber eben eine (Ausgabe-)Datei angeben. Und ob die nun foo.tar oder /dev/stderr heisst, ist tar (und anderen Programmen) egal. Und mit dem Trick bekommt man dann die Daten auch auseinandergepfriemelt :) Und ich kenne _kein_ Proggie, das --verbose Ausgaben in eine angegebene Ausgabedatei schreibt... Jedenfalls, deinen Loesung ist sicher die beste, weswegen ich meine (parallel entstandene) nur noch als Beispiel fuer den Fall sehe, dass der Dateiname '-' nicht wie gewuenscht interpretiert wird. (Ist mir schon ein paarmal so gegangen, die Ausgabe wurde in eine _Datei_ namens - ausgegeben ;) Besonders nett, wenn man stdout dupliziert (tee), mit 2 verschiedenen Progs bearbeitet (z.B. uuencode, md5sum) und die beiden Datenstroeme dann wieder aneinander bastelt (zu einer mail?) ;) Oder andere Spielereien in der Art. Meist ist's dann zwar einfacher mit temporaeren Dateien zu arbeiten, als die Datenstroeme hin- und herzubiegen, aber Spass macht das experimentieren damit auf jeden Fall.
Aber nur wenn -f - angegeben wird.
Da hast Du Recht. Ist mir erst hinterher aufgefallen, nachdem Alex es geschrieben hat, da ich immer nur mit - getestet habe.
... Und ich ohne. *bg* CU David, *patting the sigmonster* -- The mind boggles and core dumps. -- Justin Moe on 'pimps' in asr
On 16 Feb 2001, at 14:25, Alex Klein wrote:
Servus Leute,
ich hab ein Problem mit einer Syntax
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ?? Hat das was mit stout zu tun? "tar" schmeißt aber immer noch alle Dateinamen, die ins Archiv wandern aus (=stout ??). Ich raffs nicht so ganz und im Netz hab ich in der letzten Stunde keine richtig gute Erklärung gefunden. Für einige von euch ist das aber sicherlich kein Problem. Wäre nett, wenn mir jemand hilft.
Danke
Alex
tar -cvf - /daten 2> /raid/mist.log | split -b 1500m - /raid/`date +%a`.tar. Lösung: Anscheinend leitet die bash selbständig stout (file descriptor 1) nach stout (filedescriptor 2) um, sobald man als Filename "-" angibt. Genau kann ich es auch nicht erklären, funktioniert halt so. Damit hab ich Sven unrecht getan und möchte mich höflichst entschuldigen. wbr Alex ####################################################### Linux is like a wigwam, no windows, no gates and inside an apache. ####################################################### Alexander Klein Berstraße 8 93192 Wald Telefon 09463-7275 Mobil 0179-2995799
* Alex Klein schrieb am 16.Feb.2001:
tar -cvf - /daten 2> /raid/mist.log | split -b 1500m - /raid/`date +%a`.tar.
Lösung: Anscheinend leitet die bash selbständig stout (file descriptor 1) nach stout (filedescriptor 2) um, sobald man als Filename "-" angibt. Genau kann ich es auch nicht erklären, funktioniert halt so. Damit hab ich Sven unrecht getan und möchte mich höflichst entschuldigen.
Sorry, aber das ist Blödsinn, was Du da schreibst. Was das - bedeuten soll, davon weiß bash nichts. Bitte mache Dir klar was welches Programm macht. Bei obigen Befehl sieht die bash folgendes: cmd1 Argumente 2> Dateiname | cmd2 Argumente`cmd3 Argumente` Die bash ruft cmd1 auf und übergibt die Argumente, die Standardfehlerausgebe lenkt sie nach Dateiname um, während die Standardausgabe in die Pipe geschrieben wird, die die shell vorher auch noch aufgebaut hat. Alsdann führt sie cmd2 aus und übgergibt ihr ihre Argumente, dafür muß die bash vorher cmd3 ausführen und setzt die Standardausgabe von cmd3 an Stelle des `...` Die Standardeingabe von cmd2 ließt sie von der pipe. Was in den einzelnen Argumenten der Befehle steht, das interessiert die bash nicht. Der split Befehl liest von der Standardeingabe, weil da ein - steht. Aber das macht split und nicht die shell. Die shell sagt nur, was die Standardeingabe ist, in diesem Falle die pipe. Es ist einfach so, daß tar die log Daten auf Stderr ausgibt. Das tut tar immer, kannst Du ja mal ausprobieren. Wenn Du fragst, warum? Genau aus dem Grund, wie Du es brauchst. Würde tar die log-Daten auf stdout ausgeben, hättest Du keine Chance sie von den normalen Daten auseinanderzuhalten. Das ist bei UNIX/Linux so allgemein üblich. Verbose-Ausgaben erfolgen meist auf Stderr. Bernd -- Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht schon einmal gegeben hat. Ein Archiv der Liste findest Du auf: http://lists.suse.com/archives/suse-linux |Zufallssignatur 7
On 16 Feb 2001, at 17:24, Bernd Brodesser wrote:
Sorry, aber das ist Blödsinn, was Du da schreibst. Was das - bedeuten soll, davon weiß bash nichts. Bitte mache Dir klar was welches Programm macht. Bei obigen Befehl sieht die bash folgendes:
cmd1 Argumente 2> Dateiname | cmd2 Argumente`cmd3 Argumente`
Die bash ruft cmd1 auf und übergibt die Argumente, die Standardfehlerausgebe lenkt sie nach Dateiname um, während die Standardausgabe in die Pipe geschrieben wird, die die shell vorher auch noch aufgebaut hat. Alsdann führt sie cmd2 aus und übgergibt ihr ihre Argumente, dafür muß die bash vorher cmd3 ausführen und setzt die Standardausgabe von cmd3 an Stelle des `...` Die Standardeingabe von cmd2 ließt sie von der pipe.
Was in den einzelnen Argumenten der Befehle steht, das interessiert die bash nicht. Der split Befehl liest von der Standardeingabe, weil da ein - steht. Aber das macht split und nicht die shell. Die shell sagt nur, was die Standardeingabe ist, in diesem Falle die pipe.
Hi Bernd! Sehr schön erklärt. Das ist es, was ich an manchen Leuten in der Mailingliste schätze. Mit den meisten Antworten kann man nicht viel anfangen, obwohl es Lösungen sind. Man sollte aber immer auch verstehen, was man macht.
Es ist einfach so, daß tar die log Daten auf Stderr ausgibt. Das tut tar immer, kannst Du ja mal ausprobieren. Wenn Du fragst, warum? Genau aus dem Grund, wie Du es brauchst. Würde tar die log-Daten auf stdout ausgeben, hättest Du keine Chance sie von den normalen Daten auseinanderzuhalten. Das ist bei UNIX/Linux so allgemein üblich. Verbose-Ausgaben erfolgen meist auf Stderr.
Sorry, aber das halte ich für Blödsinn. Die log Daten sind beim u.a. Befehl eindeutig nicht im Stderr ( welcher bekanntlich mit 2> umgeleitet wird). Genauso ist es mit vielen anderen Befehlen. SCNR! tar cvf /tmp/mist.tar /boot > /tmp/mist.log Trozdem fett merci Bernd ich glaub ich habs. Alex
On Fre, 16 Feb 2001, you wrote:
On 16 Feb 2001, at 14:25, Alex Klein wrote:
Servus Leute,
ich hab ein Problem mit einer Syntax
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ?? Hat das was mit stout zu tun? "tar" schmeißt aber immer noch alle Dateinamen, die ins Archiv wandern aus (=stout ??). Ich raffs nicht so ganz und im Netz hab ich in der letzten Stunde keine richtig gute Erklärung gefunden. Für einige von euch ist das aber sicherlich kein Problem. Wäre nett, wenn mir jemand hilft.
Danke
Alex
tar -cvf - /daten 2> /raid/mist.log | split -b 1500m - /raid/`date +%a`.tar.
Hallo Alex, tut mir leid, dass ich dich vorher nicht richtig verstanden habe. Ich hab nicht ganz umrissen, dass du das Zeug von tar --verbose umlenken willst, das ja nach STDERR geschieben wird. Nun zu deinem "-" Problem: Das erste "-" wird nicht von der Bash interpretiert, sondern von tar. Dort heisst es in der Infopage (tar: Choosing: file): If you use `-' as an ARCHIVE-NAME, `tar' reads the archive from standard input (when listing or extracting files), or writes it to standard output (when creating an archive). If you use `-' as an ARCHIVE-NAME when modifying an archive, `tar' reads the original archive from its standard input and writes the entire new archive to its standard output. Das zweite "-" wird auch nicht von der Bash interpretiert, sondern von split, naemlich als STDIN. Und jetzt nur noch eine kleine Frage: Bei einer Pipe wird ja das STDOUT des einen Kommandos mit dem STDIN des anderen Kommandos verbunden, oder ist das Falsch? seb
Lösung: Anscheinend leitet die bash selbständig stout (file descriptor 1) nach stout (filedescriptor 2) um, sobald man als Filename "-" angibt. Genau kann ich es auch nicht erklären, funktioniert halt so. Damit hab ich Sven unrecht getan und möchte mich höflichst entschuldigen. [...]
On 16 Feb 2001, at 19:01, Sebastian Huber wrote:
Hallo Alex, tut mir leid, dass ich dich vorher nicht richtig verstanden habe. Ich hab nicht ganz umrissen, dass du das Zeug von tar --verbose umlenken willst, das ja nach STDERR geschieben wird. Nun zu deinem "-" Problem: Das erste "-" wird nicht von der Bash interpretiert, sondern von tar. Dort heisst es in der Infopage (tar: Choosing: file):
If you use `-' as an ARCHIVE-NAME, `tar' reads the archive from standard input (when listing or extracting files), or writes it to standard output (when creating an archive). If you use `-' as an ARCHIVE-NAME when modifying an archive, `tar' reads the original archive from its standard input and writes the entire new archive to its standard output.
Das zweite "-" wird auch nicht von der Bash interpretiert, sondern von split, naemlich als STDIN.
Und jetzt nur noch eine kleine Frage: Bei einer Pipe wird ja das STDOUT des einen Kommandos mit dem STDIN des anderen Kommandos verbunden, oder ist das Falsch?
seb
Hi Seb, hab das auch schön erklärt bekommen von Bernd (siehe Liste). Ich denke das ist richtig, aber - wie gesagt - ich habs auch erst heute umrissen, dank Bernd. Lies Dir das mal durch. Ist wirklich gut. Sayonara Alex
* Alex Klein schrieb am 16.Feb.2001:
ich hab ein Problem mit einer Syntax
Sieht so aus.
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Nein kann auch nicht klappen. Was willst Du die Ausgabe von tar in eine Datei schreiben (/raid/`date +%a`.log) oder willst Du sie in einer pipe geben? Ich schätze mal, Du willst sie in einer pipe geben, also tar -cvf - /daten | .... Da hast Du aber noch die Ausgabe von -v. Du hast Glück, sie wird in die Fehlerausgabe geschrieben und nicht in die Standardausgabe. Sonst hättest Du keine Chance die beiden Ausgaben auseinander zu halten. So aber geht es wie Du willst: tar -cvf - /daten 2>/raid/`date +%a`.log | ... So und nun zu der Pipe. Die Pipe nimmt die Standardausgabe des Befehls links von ihr zur Standardeingabe des Befehls rechts. Rechts steht dann Dein split, der müßte so funktionieren, falls /raid existiert. Allerdings würde ich keine Daten direkt unter dem root-Verzeichnis legen. Was hälst Du von irgend etwas unter /usr/local?
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Interessant für Dich ist hier man bash.
Ich hab das mit dem "-" auch nicht so richtig nachvollziehen können. Man übergibt damit "split" anscheinend das Arbeitserzeugnis von tar. Nur was genau ist "-" ??
Steht für die Standardeingabe. Ist bei vielen Befehlen, bei denen normalerweise Dateinamen erwartet werden so. Wenn statt eines Dateinamen da - steht, so wird die Standardeingabe genommen. Geht natürlich nicht bei jedem Befehl. Sicherlich nicht bei ln.
Hat das was mit stout zu tun?
Wegen der pipe ist die Standardeingabe von split gleich der Standardausgabe von tar. Aber weder split noch tar wissen was voneinander. Es ist die bash, die vermittelt.
"tar" schmeißt aber immer noch alle Dateinamen, die ins Archiv wandern aus (=stout ??).
Nein stderr. Wenn Du das nicht willst mußt Du -v weglassen, oder stderr umlenken.
Ich raffs nicht so ganz und im Netz hab ich in der letzten Stunde keine richtig gute Erklärung gefunden. Für einige von euch ist das aber sicherlich kein Problem. Wäre nett, wenn mir jemand hilft.
Wie gesagt, es ist im Wesentlichen ein Problem der bash, lediglich die - werden von splitt ausgewertet, oder von tar, aber da heißt es in diesem Fall stdout. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11
Hallo, On Fre, 16 Feb 2001, Alex Klein wrote:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Ich hab mal in versch. mans geguckt, aber das war wohl nicht so ganz ergiebig für meinen Hohlschädl :-)
Versuch mal: DATE=`date +%a`; tar -cvf /dev/stderr /daten 2>&1 1>/raid/${DATE}.log | \ ( split -b 1500m - /raid/%{DATE}.tar ) CU David -- "My manner of thinking, so you say, cannot be approved. Do you suppose I care?" -- Marquis de Sade
Alex Klein wrote:
Servus Leute,
ich hab ein Problem mit einer Syntax
ich möchte ein tar archiv erstellen und die standard Ausgabe in eine Datei umleiten. Ok, bis jetzt kein Problem. Allerdings muß ich mit split arbeiten, da die Archive > 2GB. Folgende Syntax klappt nicht:
tar -cvf - /daten >(/raid/`date +%a`.log) | split -b 1500m - /raid/`date +%a`.tar.
Hmm, funktioniert das: (tar -cv -O /tmp | split -b 2000m - `date +%h.` ) 2> log.prot Gruß, daniel
participants (6)
-
Alex Klein
-
Bernd Brodesser
-
Daniel Wolpert
-
David Haller
-
Sebastian Huber
-
Sven Bergner