Optionsübergabe von tar an bzip2 bei --bzip2 / -j

Post Reply
Message
Author
User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

Optionsübergabe von tar an bzip2 bei --bzip2 / -j

#1 Post by Lateralus »

Hallo ich habe ein kleines Problem. Ich würde gerne die Befehle

Code: Select all

tar -cf "$filename".tar $files
bzip2 -9 "$filename".tar
in Form von eines einzigen Befehls wie

Code: Select all

tar -jcf "$filename".tar.bz2 $files
verwenden. Leider wird dabei eine geringere Kompressionsrate verwendet. Geht es auch einfacher als

Code: Select all

tar -cO $files | bzip2 -9 > "$filename".tar.bz2
also "ohne" Pipe in der zweitgenannten Form?


ps: Ja, ich weiß, dass das krümelkackrig ist.

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#2 Post by klopskuchen »

Wie wäre es mit dem Pipebefehl in einem shellscript das die zu bearbeitende Datei einliest,

Code: Select all

#!/bin/sh
echo "Mahlzeit!"
echo "Zu bearbeitende Datei:"

read $FILE
tar...
und ab damit nach /usr/bin.

MfG, Klopskuchen
When all else fails, read the instructions .

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#3 Post by Lateralus »

...nein. Das ist dann wieder zuviel overhead. An sich bin ich ja mit der Pipe-Lösung ganz zufrieden, aber es wäre schön, wenn man die Optionen, die man an tar und bzip2 übergibt in eine Variable setzen könnte.

Wie gesagt: Ist ja eigentlich verdammt übertrieben. Weiß auch nicht, was mich geritten hat, diese Frage zu posten... :roll:

thx anyway.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#4 Post by hjb »

Hi!

Du könntest die Option

Code: Select all

--use-compress-program=PROG
verwenden, PROG könnte ein Skript sein, in dem du bzip2 mit den passenden Optionen aufrufst. Aber damit hast du letztlich auch nichts gewonnen ;-)

Ich dachte auch, daß tar irgendwo eine Option hat, um den Kompressionslevel einzustellen. Aber entweder liege ich falsch oder ich habe sie übersehen.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

S. Hell

#5 Post by S. Hell »

Wichtiger wäre wohl erstmal, statt $files eine Array-Variable zu verwenden! Linux und andere leiden unter diesem ungequoteten Shellmurks.

Nun gut, zum Thema:

man bzip2
... will read arguments from the environment variables BZIP2 and BZIP, in that order, and will process them before any arguments read from the command line. This gives a convenient way to supply default arguments.

Ein Test in der Art

BZIP2=-1 tar -cjf test-1.tar.bz2 A_DIR
BZIP2=-9 tar -cjf test-9.tar.bz2 A_DIR

sollte dir den Erfolg vor Augen führen.

Post Reply