2012-12-05 2 views
11

Supponiamo che io ho una cartella denominata abc, ha diverse sottocartelle in modo ricorsivo, voglio zip tutto sotto abc, quando uso il seguente comandoCome zip file senza la cartella di livello superiore, ma mantenere le sottocartelle

zip -r abc.zip abc/* 

Ottengo abc.zip, ma contiene la cartella di livello superiore abc e tutto è in abc, come abc/xxx, abc/yyy ecc., Come posso rimuovere la cartella di livello superiore abc? Voglio mettere tutto direttamente in abc.zip.

Nota:

  1. posso zip solo dall'esterno della cartella, in modo da accedere alla cartella abc, e zip * non è un lavoro per me
  2. ho bisogno di eseguire questo comando in una sola riga, Posso separare più comandi di;
  3. l'opzione -j inoltre non funziona, dal momento che rimuove le sottocartelle, voglio tenerle lì.

risposta

13
cd abc 
zip -r ../abc.zip *

Anche se devo dire che nella maggior parte dei casi, mantenendolo abc rende per una gestione più semplice.