Zip wszystko w bieżącym katalogu

84

Chciałbym skompresować i spakować wszystko, w tym pliki i foldery w bieżącym katalogu, do jednego pliku ZIP na Ubuntu.

Jakie byłoby najwygodniejsze polecenie (i nazwa narzędzia, które należy zainstalować, jeśli takie istnieje)?

Edycja: Co zrobić, jeśli muszę wykluczyć jeden folder lub kilka plików?

Terry Li
źródło

Odpowiedzi:

103

Zainstaluj zipi użyj

zip -r foo.zip .

Możesz użyć flag -0(brak) do -9(najlepszych), aby zmienić współczynnik kompresji

Wykluczanie plików można wykonać za pomocą -xflagi. Ze strony podręcznika:

-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
źródło
+1 Co zrobić, jeśli chcę wykluczyć jakiś folder lub plik?
Terry Li
1
@TerryLiYifeng Zredagowałem swoją odpowiedź z informacją na ten temat
SkaveRat
18

Myślę, że wiele osób, które przychodzą przez Google na to pytanie, oznacza „zarchiwizuj i skompresuj”, pisząc „zip”. Alternatywą dla formatu zip jest tar :

tar -czf copy.tar.gz whatever/

gdzie skompresowanym plikiem archiwum będzie copy.tar.gz, a zawartość będzie zawarta w folderze.

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
Martin Thoma
źródło
1
Dla xz, opcja to--J or --xz
Anwar,