Zip alles im aktuellen Verzeichnis

84

Ich möchte alles, einschließlich der Dateien und Ordner im aktuellen Verzeichnis, komprimieren und in eine einzige ZIP-Datei unter Ubuntu packen.

Welcher Befehl ist hierfür am bequemsten (und Name des Tools, das installiert werden muss, falls vorhanden)?

Bearbeiten: Was ist, wenn ich einen Ordner oder mehrere Dateien ausschließen muss?

Terry Li
quelle

Antworten:

103

Installieren zipund verwenden

zip -r foo.zip .

Sie können die Flags -0(none) bis -9(best) verwenden, um die Kompressionsrate zu ändern

Das Ausschließen von Dateien kann über das -xFlag erfolgen. Von der Manpage:

-x files
--exclude files
          Explicitly exclude the specified files, as in:

                 zip -r foo foo -x \*.o

          which  will  include the contents of foo in foo.zip while excluding all the files that end in .o.  The backslash avoids the shell filename substitution, so that the name matching
          is performed by zip at all directory levels.

          Also possible:

                 zip -r foo foo [email protected]

          which will include the contents of foo in foo.zip while excluding all the files that match the patterns in the file exclude.lst.

          The long option forms of the above are

                 zip -r foo foo --exclude \*.o

          and

                 zip -r foo foo --exclude @exclude.lst

          Multiple patterns can be specified, as in:

                 zip -r foo foo -x \*.o \*.c

          If there is no space between -x and the pattern, just one value is assumed (no list):

                 zip -r foo foo -x\*.o

          See -i for more on include and exclude.
SkaveRat
quelle
+1 Was ist, wenn ich einen Ordner oder eine Datei ausschließen möchte?
Terry Li
1
@ TerryLiYifeng Ich habe meine Antwort mit Informationen dazu bearbeitet
SkaveRat
18

Ich denke, viele Leute, die über Google auf diese Frage kommen, meinen "archivieren und komprimieren", wenn sie "zip" schreiben. Eine Alternative zum zip-Format ist tar :

tar -czf copy.tar.gz whatever/

Die komprimierte Archivdatei wird copy.tar.gz sein und der Inhalt wird alles in dem Ordner sein, was auch immer.

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
Martin Thoma
quelle
1
Für xz ist die Option--J or --xz
Anwar