Zip tout dans le répertoire courant

84

J'aimerais compresser et emballer tout, y compris les fichiers et les dossiers du répertoire courant, dans un fichier ZIP unique sous Ubuntu.

Quelle serait la commande la plus pratique pour cela (et le nom de l'outil à installer, le cas échéant)?

Edit: Et si je dois exclure un dossier ou plusieurs fichiers?

Terry Li
la source

Réponses:

103

Installer zipet utiliser

zip -r foo.zip .

Vous pouvez utiliser les drapeaux -0(aucun) pour -9(meilleur) pour changer le taux de compression.

L'exclusion de fichiers peut être effectuée via le -xdrapeau. De la page de manuel:

-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
la source
+1 Et si je veux exclure un dossier ou un fichier?
Terry Li
1
@TerryLiYifeng J'ai modifié ma réponse avec des informations à ce sujet
SkaveRat
18

Je suppose que beaucoup de gens qui répondent à cette question via Google veulent dire "archiver et compresser" quand ils écrivent "zip". Tar est une alternative au format zip :

tar -czf copy.tar.gz whatever/

où le fichier d'archive compressé sera copy.tar.gz et où le contenu sera tout dans le dossier.

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
Martin Thoma
la source
1
Pour xz, l'option est--J or --xz
Anwar