2013-05-23 7 views
13

Ich möchte eine Datei in einer Zip-Datei mit einem anderen Namen hinzufügen und die Erstellung einer neuen Datei mit dem gewünschten Namen vermeiden. Ich möchte beispielsweise die Datei "myfile.txt" zu einer Zip-Datei hinzufügen, sie jedoch in "myfile2.txt" umbenennen.Linux-Zip-Befehl: Hinzufügen einer Datei mit anderem Namen

Dank

+0

Verstehe nicht, warum ist es offtopic – pihentagy

+3

Ich stimme auch, dass dies nicht offtopic hier ist. 'zip' ist ein Standard-Entwicklungswerkzeug, um Releases zu bündeln. Und das Ändern des Namens verteilter Dateien bei der Bündelung innerhalb eines Makefiles kann als sehr gebräuchliche Praxis angesehen werden. Wenn es also eine Lösung gibt, die keine Kopien in temporäre Dateien/Verzeichnisse enthält, ist dies eine sehr willkommene Sprache, um eine ziemlich gewöhnliche Programmieraufgabe zu lösen. – Tino

+0

Voting zum Verlassen geschlossen als [Arbeitsanforderung] (https://meta.stackoverflow.com/questions/274630/should-we-add-a-do-my-work-for-me-close-reason). –

Antwort

20

Sie können zipnote benutzen, die mit dem Zip-Paket kommen sollte.

Zuerst das Zip-Archiv mit der myfile.txt-Datei erstellen:

zip archive.zip myfile.txt 

Dann myfile.txt in dem Zip-Archiv umbenennen mit:

printf "@ myfile.txt\[email protected]=myfile2.txt\n" | zipnote -w archive.zip 

(Dank Jens für das Vorschlagen printf statt echo -e.)

Eine kurze Erklärung von "@ myfile.txt\[email protected]=myfile2.txt\n":

Von zipnote -h: "@ name" kann durch ein "@ = newname" Linie folgen Sie den Namen

Und \n trennt die beiden Befehle zu ändern.

+1

Kleiner Nitpick: 'echo -e' ist ein nicht portierbarer SysVism. Ich würde "printf" @ myfile.txt \ [email protected]=myfile2.txt \ n "| verwenden ... '. – Jens

+0

Guter Punkt. Meine Antwort geändert. – mkrnr

+0

Ich weiß nicht warum, aber ich kann es schaffen. Siehe meine Frage - http://stackoverflow.com/questions/22974139/how-to-use-zipnote-command – martin

Verwandte Themen