Ändern Sie den Namen des Stammordners in der Datei tar.gz

1

Ich habe eine tar.gz-Datei, insbesondere: http://download.oracle.com/otn-pub/java/jdk/8u20-b26/jdk-8u20-linux-x64.tar.gz . Ich werde es herunterladen, ändern und in meinem eigenen Repository ablegen.

Ich möchte den Namen des Stammverzeichnisses ändern, das extrahiert wird, ohne es tatsächlich zu extrahieren, zu ändern und dann manuell in separaten Befehlen zu komprimieren. Dies ist so, dass jeder, der es in Zukunft extrahiert, meinen angegebenen Ordnernamen hat.

Ich weiß, dass ich das benutzen kann --transform Option, aber das ist NICHT Ich möchte, dass meine Benutzer diese Option nicht angeben müssen.

Ist das möglich?

Wenn nicht, gibt es einen Einzeiler, der das Extrahieren, Ändern und Komprimieren so ausführt, dass die Berechtigungen oder die Struktur usw. nicht geändert werden.

Cheetah
quelle
download && extract && mv folder_old folder_new? Können Sie den Anwendungsfall beschreiben?
Jan
@Jan - es wird in meinem eigenen Repository gespeichert. Der Benutzer muss keine zusätzlichen Schritte ausführen, um es zu ändern. Er muss es einfach extrahieren können und der Ordnername muss korrekt sein.
Cheetah
Wenn du es in dein Repo packst, warum extrahierst, änderst, packst du dann nicht und dann in dein Repo stecken?
Jan
1
Es ist nicht möglich, .tar (das Archiv) vor dem Dekomprimieren zu ändern
Joakim Elofsson

Antworten:

0

Hier ist dein Einzeiler, RUN AS ROOT oder mit sudo um Berechtigungen usw. zu erhalten

gunzip -c jdk-8u20-linux-x64.tar.gz | tar --transform=EXPRESSION xf - ; tar cf fixed.tar DIRNAME ; gzip fixed.tar

Es tut mir leid, ich kann Ihnen nicht helfen, wie der EXPRESSION / DIRNAME lauten soll, nur nicht genug Informationen in der Frage, um dort helfen zu können.

webmarc
quelle