2009-06-17 13 views
5

Il programma di utilità zip, quando invocato come zip -r out.zip base/* su questa struttura di directoryCome aggiungere file e dir in un file zip senza la directory principale?

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

crea il seguente risultato

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

Vorrei ottenere un file che contiene i dati a partire dal seguente output

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

Mi aspettavo che l'opzione -j mi aiutasse, ma non lo fa: appiattisce completamente la directory cture. Al momento, l'unica soluzione che ho trovato è quella di andare in cd nella base e invocare zip da qui, ma mi chiedevo se c'è un interruttore che non riesco a riconoscere come tale nei documenti.

+0

Quale utilità o sistema operativo si sta utilizzando? – Pedro

+0

Simile a http://stackoverflow.com/questions/3630167/zip-command-without-including-the-compressed-dir-itself – ryenus

risposta

4

Capisco che non si vuole cd, ma ...

Se tutto il resto fallisce e si spera di mantenere la vostra chiamata a zip fino a una riga, è possibile concatenare le chiamate e utilizzare un parente percorso per uscita zip nella root:

per Windows:

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

per Linux/Unix:

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

Problemi correlati