Skip to content

Linux 常用命令(5):压缩与解压

🏷️ Linux

zip / unzip

将一般的文件或者目录进行压缩或者解压,默认生成以 .zip 为后缀的压缩包。

shell
zip [选项] 压缩文件名 需要压缩的文档列表
选项说明
-r递归压缩,将指定目录下的所有文件以及子目录全部压缩。
-d从压缩文件内删除指定的文件。
-u更新文件到压缩文件中。
-m将文件加入压缩文件后,删除原始文件,
即把文件移到压缩文件中。
-压缩级别压缩级别是 1~9 之间的数字。
shell
unzip [选项] 压缩文件名
选项说明
-v查看压缩文件的详细信息,并不解压
-n解压时不覆盖已经存在的文件。
-o解压时覆盖已经存在的文件,并且不要求用户确认。
-d 目录名把压缩文件解压到指定目录下。

gzip / gunzip

将一般的文件进行压缩或者解压。压缩文件预设扩展名为 .gz
gunzip 就是 gzip 的硬链接。

注意

gzip 只能对文件进行压缩,不能压缩目录。即使指定压缩目录,也只能压缩目录内的所有文件。

shell
gzip [选项] 压缩(解压缩)的文档名
选项说明
-d对压缩的文件进行解压。
-r递归式压缩指定目录以及子目录下的所有文件。
-t检查压缩文档的完整性。
-num用指定的数字 num 配置压缩比。
-1或者-fast表示最低压缩比;
-9或者-best表示最高压缩比。
系统默认压缩比为 6

bzip2 / bunzip2

对文件进行压缩和解压缩。
类似于 gzip / gunzip 只能对文件进行压缩。
默认压缩包扩展名为 .bz2
bunzip2bzip2 的软链接。

shell
bzip2 [选项] 要压缩或解压的文件
选项说明
-d对压缩的文件进行解压。
-v压缩或解压文件时,显示详细信息。
-kbzip2 在压缩或解压后,默认会删除原始文件。
若要保留原始文件,可使用此选项。
-fbzip2 在压缩或解压时,若输出文件与现有文件重名,预设不会覆盖现有文件。
若要覆盖,可使用此选项。
-压缩级别1~9,数字越大,压缩率越高。

tar

对文件或者目录进行打包归档,归档成一个文件,但是并不进行压缩

shell
tar [主选项 + 辅助选项] 文件或者目录

主选项:

选项说明
-c新建文件。
-r把要归档的文件追加到档案文件的末尾。
-t列出档案文件中已经归档的文件列表。
-x从打包的档案文件中还原出文件。
-u更新档案文件,用新建文件替换档案中的原始文件。

辅助选项:

选项说明
-z调用 gzip 命令在文件打包的过程中压缩/解压文件。
-w在还原文件时,把所有文件的修改时间设置为现在时间。
-j调用 bzip2 命令在文件打包的过程中压缩或解压文件。
-Z使用 compress 命令过滤档案。
-f-f 选项后面紧跟档案文件的存储设备,默认是磁盘,需要指定档案文件名。
如果是磁带,只需要指定磁带设备名即可。
注意,在 -f 选项之后不能再跟任何其它选项,
也就是说,-f 必须是 tar 命令的最后一个选项。
-v指定在创建归档文件过程中,显示各个归档文件的名称。
-p在文件归档的过程中,保持文件的属性不发生变化。
-N "yyyy/mm/dd"在指定日期之后的文件才会打包到档案文件中。
--exclude file在打包过程中,不将指定文件打包。

dd

转换或复制文件,同时可以对设备进行备份。

shell
dd if="input_file" of="output_file" bs="block_size" count="number"
  • if:输入文件,可以是设备;
  • of:输出设备,也可以是设备;
  • bs:指定一个 block 的大小,默认为 512 字节;
  • countbs 的数量;

cpio

通过重定向的方式将文件进行打包、备份、还原或恢复,也可以解压 .cpio.tar 文件。

shell
cpio [选项] > 文件名或设备名
cpio [选项] < 文件名或设备名
选项说明
-o将文件复制、打包成文件或者将文件输出到设备上。
-i将打包文件解压或者将设备上的备份还原到系统中。
-t查看 cpio 打包的文件内容或者输出到设备上的文件内容。
-v显示打包过程中的文件名称。
-dcpio 还原文件的过程中,自动建立相应的目录。
-c一种较新的存储方式。
-B让默认块可以增大到 5120 字节,默认块为 512 字节。
这样做的好处是可以加快存取速度。