web-dev-qa-db-ja.com

現在のディレクトリのすべてを圧縮する

現在のディレクトリにあるファイルやフォルダーを含むすべてのものを、Ubuntu上の単一のZipファイルに圧縮してパッケージ化したいと思います。

これのための最も便利なコマンドは何ですか?(もしあれば、インストールする必要があるツールの名前)?

編集:1つのフォルダーまたは複数のファイルを除外する必要がある場合はどうなりますか?

96
Terry Li

Zipをインストールして使用

Zip -r foo.Zip .

フラグ-0(なし)から-9(最適)を使用して、圧縮率を変更できます。

ファイルを除外するには、-xフラグを使用します。マンページから:

-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.
118
SkaveRat

グーグル経由でこの質問に来る人の多くは、「Zip」と書いたときに「アーカイブして圧縮する」という意味だと思います。 Zip形式 の代替は tar です。

tar -czf copy.tar.gz whatever/

ここで、圧縮されたアーカイブファイルはcopy.tar.gzで、内容はフォルダー内のすべてのものになります。

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
21
Martin Thoma