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?

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 -x@exclude.lst

          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.

+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

1
Dla xz, opcja to--J or --xz
Anwar,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.