2009-06-17 6 views
5

Das Zip-Utility-Programm, wenn sie als zip -r out.zip base/* auf dieser VerzeichnisstrukturWie fügt man Dateien und Verzeichnisse zu einer Zip-Datei ohne das Root-Verzeichnis hinzu?

. 
./base 
./base/b 
./base/b/c 
./base/d 
aufgerufen

erzeugt das folgende Ergebnis

adding: base/b/ (stored 0%) 
    adding: base/b/c (stored 0%) 
    adding: base/d (stored 0%) 

Ich möchte eine Datei Daten wie aus der folgenden Ausgabe

enthält, erhalten
adding: b/ (stored 0%) 
    adding: b/c (stored 0%) 
    adding: d (stored 0%) 

Ich erwartete die Option -j, um mir zu helfen, aber es tut es nicht: es flacht das Verzeichnis stru vollständig ab cure. Im Moment ist die einzige Lösung, die ich gefunden habe, in Base zu callen und zip von hier aus aufzurufen, aber ich habe mich gefragt, ob es einen Powerswitch gibt, den ich in den Dokumenten nicht als solchen erkenne.

+0

Welches Dienstprogramm oder Betriebssystem verwenden Sie? – Pedro

+0

Ähnlich wie http://stackoverflow.com/questions/3630167/zip-command-without-the-compressed-dir-self – ryenus

Antwort

4

Ich verstehe, dass Sie nicht zu cd wollen, aber ...

Wenn alle Stricke reißen und Sie hoffen, Ihren Anruf zu halten, um eine Zeile zip nach unten, können Sie die Anrufe Kette und eine relative verwenden Pfad zur Ausgabe zip in der Wurzel:

Für Windows:

cd base & zip -r ..\out.zip * & cd ..

Für Linux/Unix:

cd base ; zip -r ../out.zip * ; cd ..

Verwandte Themen