如何在linux进行归档及压缩

  • 使用tar对多个文件进行归档
  • 使用gzip对文件进行压缩和解压
  • 使用bzip2对文件进行压缩和解压

6.1 归档

为了方便文件在网络上传输,我们需要把多个文件打包成一个文件(归档)。常见的归档命
令包括tar和 cpio,这里讲 tar的使用,cpio请大家自行学习。
tar的语法如下。
1 tar cvf aa.tar file1 file2 file3
2 c的意思是创建归档
3 v的意思是创建归档时显示被归档的文件,为了简化输出,可以不加v选项
4 f用于指定归档文件
5 这里的意思是把file1、file2、file3归档到aa.tar中
归档文件一般使用tar后缀。
先做准备,拷贝几个文件到当前目录,命令如下。
[root@op ~]# cp /etc/hosts /etc/passwd /etc/services .
[root@op ~]# 
[root@op ~]# ls
11    模板  图片  下载  桌面    anaconda-ks.cfg  hosts                 passwd
公共  视频  文档  音乐  aa.txt  dir              initial-setup-ks.cfg  services
然后把 hosts、passwd、services三个文件归档成一个文件aa.tar,命令如下。
[root@op ~]# tar cf aa.tar hosts passwd services 
[root@op ~]# ls
11    模板  图片  下载  桌面    aa.txt           dir    initial-setup-ks.cfg  services
公共  视频  文档  音乐  aa.tar  anaconda-ks.cfg  hosts  passwd
从上面的操作可以看出,当创建好归档文件后,源文件还是在的,即把 hosts、
passwd,services归档到aa.tar中之后,这三个文件依然存在。如果希望归档之后同时删除源
文件,可以加上--remove-files选项。
删除aa.tar,然后再次归档,命令如下。
[root@op ~]# tar cf aa.tar hosts passwd services --remove-files
[root@op ~]# 
[root@op ~]# ls
11    模板  图片  下载  桌面    aa.txt           dir
公共  视频  文档  音乐  aa.tar  anaconda-ks.cfg  initial-setup-ks.cfg
[root@op ~]# 
想在归档文件中追加一个文件用r选项
[root@op ~]# tar -rf aa.tar anaconda-ks.cfg 
[root@op ~]# tar -tf aa.tar
hosts
passwd
services
anaconda-ks.cfg
[root@op ~]# 
对归档文件进行解档,解档的语法如下。
1 tar xvf aa.tar
2 这里×表示解档
3 v显示解档出来的文件,为了简化输出,v选项可以不写
4 f用于指定归档文件
也可以解档时默认为解档到当前目录。如果要解档到指定的目录,需要加上“-C指
定目录”,现在要把aa.tar解档到/opt目录中
[root@op ~]# tar xf aa.tar -C /opt/
[root@op ~]# cd /opt/
[root@op opt]# ls
anaconda-ks.cfg  hosts  passwd  services

6.2 压缩
前面讲tar只是归档,并没有压缩功能。要是想压缩,有专门的工具,如 gzip、bzip2、
zip。
先创建一个测试文件,命令如下。
[root@op ~]# dd if=/dev/zero of=file bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600 bytes (105 MB, 100 MiB) copied, 0.077409 s, 1.4 GB/s
[root@op ~]# 
(1)f是读取哪里的内容,这里是/dev/zero。
(2)of是组成的文件名。
(3)count指定zero的数目。
(4)bs指定每个zero的大小,如果没有指定单位则默认为B。
这里的意思是拿100个大小为1M的/dev/zero组成一个名称叫file的文件,此file的大小应
该是100M。
[root@op ~]# ls -lh file
-rw-r--r--. 1 root root 100M 11月 30 11:13 file
[root@op ~]# 
6.2.1 gzip 的用法
gzip的用法如下
1 压缩:gzip file,压缩出来的文件后缀为gz
2 解压:gzip ‐d file.gz
使用gzip对file进行压缩,命令如下。
[root@op ~]# gzip file
[root@op ~]# ls -lh file.gz 
-rw-r--r--. 1 root root 100K 11月 30 11:13 file.gz
[root@op ~]#
可以看到,file原来100M,压缩成file.gz的大小只有100K。因为file文件过于简单,所以
压缩率很高。
用gzip把 file.gz解压,命令如下。
[root@op ~]# gzip -d file.gz 
[root@op ~]# ls
11    模板  图片  下载  桌面    aa.txt           dir   initial-setup-ks.cfg
公共  视频  文档  音乐  aa.tar  anaconda-ks.cfg  file
[root@op ~]# 
6.2.2 bzip2的用法
bzip2也是常用的压缩工具,用法如下。
1 压缩:bzip2 file,压缩出来的文件后缀为bz2
2 解压:bzip2 ‐d fle.bz2
使用bzip2对file进行压缩,命令如下。
[root@op ~]# bzip2 file
[root@op ~]# ls -lh file.bz2 
-rw-r--r--. 1 root root 113 11月 30 11:13 file.bz2
[root@op ~]# 

这里把100M的file压缩到1K以下。因为file文件过于简单,所以压缩率很高。 使用bzip2进行解压,命令如下。

[root@op ~]# bzip2 -d file.bz2 
[root@op ~]# 
6.2.3 zip 的用法
zip是常用的压缩工具,在 Windows 中也经常使用。zip的用法如下。
1 压缩文件: zip aa.zip file,把file压缩到aa.zip中
2 压缩目录:zip ‐r bb.zip dir,把目录dir压缩到bb.zip中
如果解压zip格式的压缩文件,则用unzip命令,用法如下。
unzip aa.zip
练习:把file压缩到aa.zip中,命令如下。
[root@op ~]# zip aa.zip file
  adding: file (deflated 100%)
[root@op ~]# ls -lh file aa.zip 
-rw-r--r--. 1 root root 100K 11月 30 11:25 aa.zip
-rw-r--r--. 1 root root 100M 11月 30 11:13 file
解压zip格式的压缩文件,命令如下。
[root@op ~]# rm -rf file
[root@op ~]# ls
11    模板  图片  下载  桌面    aa.txt  anaconda-ks.cfg  initial-setup-ks.cfg
公共  视频  文档  音乐  aa.tar  aa.zip  dir
[root@op ~]# unzip aa.zip
Archive:  aa.zip
  inflating: file                    
[root@op ~]# ls
11    模板  图片  下载  桌面    aa.txt  anaconda-ks.cfg  file
公共  视频  文档  音乐  aa.tar  aa.zip  dir              initial-setup-ks.cfg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值