我想将所有文件(包括当前目录中的文件和文件夹)压缩并打包到Ubuntu上的单个ZIP文件中。

对此最方便的命令是什么(以及所需工具的名称)是否要安装)?

编辑:如果我需要排除一个文件夹或多个文件怎么办?

#1 楼

安装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 -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如果我要排除某些文件夹或文件怎么办?

–李T
2011年12月21日在21:33

@TerryLiYifeng我用有关信息编辑了我的答案

– SkaveRat
2011-12-21 21:42



#2 楼

我猜想许多通过Google提出此问题的人在写“ zip”时都表示“存档和压缩”。压缩格式的另一种选择是tar:

tar -czf copy.tar.gz whatever/


,其中压缩的存档文件将是copy.tar.gz,内容将是文件夹中的所有内容。 br />
 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE


评论


对于xz,选项为--J或--xz

–安瓦尔
17年6月10日在17:39