文件的压缩与解压

为什么要使用文件压缩 什么样样的情况下使用压缩

  备份 数据传输 从服务器把数据备份到备份服务器 需要打包

  1)节省磁盘空间
  2)减少宽带使用
  3)减少负载 减少IO口使用

tar命令

  语法格式:
  tar zcvf 包名.tar.gz 打包内容 多个文件 多个目录

  参数:
        z      gzip 压缩
        c      创建
        v      显示过程
        f      指定文名称
    简写 zcf
    批量打包
        --exclude=PATTERN  排除不需要打包的文件
        --exclude-from=FILE 将不需要的文件创建一个文件 排除文件里的打包

        x      解压缩
        C      指定解压位置
        t      查看文件中的文件名称

打包

打包文件 
	
[root@oldboyedu ~]# #打包当前的hosts文件
[root@oldboyedu ~]# tar zcvf hosts.tar.gz hosts

打包多个文件

[root@oldboyedu ~]# tar zcvf hosts.tar.gz hosts oldboy.txt passwd 
hosts
oldboy.txt
passwd
打包目录 

[root@oldboyedu ~]# tar zcf etc.tar.gz /etc
tar: Removing leading `/' from member names  # 如果全路径打包会提示从成员中删除/ 保护系统安全
				
不让提示 使用相对路径打包

[root@oldboyedu ~]# cd /
[root@oldboyedu /]# tar zcf etc.tar.gz etc
[root@oldboyedu /]# 
打包后的文件直接放在某个目录

[root@oldboyedu /]# ll /opt/
total 0
[root@oldboyedu /]# tar zcf /opt/etc.tar.gz etc
[root@oldboyedu /]# ll opt/
total 10012
-rw-r--r-- 1 root root 10248462 Nov  6 10:42 etc.tar.gz
批量打包

--exclude=PATTERN  排除不需要打包的文件

[root@oldboyedu ~]# tar zcvf test.tar.gz --exclude=all.hosts ./*
./all.tar.gz
./dir/
./dir/oldboy/
./hehe.txt
./hosts
./oldboy.txt
./passwd
./test.
./test.avi
./test.sh

-exclude-from=FILE将不需要的文件创建一个文件 排除文件里的打包

[root@oldboyedu ~]# tar zcvf test.tar.gz --exclude-from=exclude.txt ./*
./exclude.txt
./passwd
./test.
./test.avi
./test.sh

解压

tar xf 包名
[root@oldboyedu opt]# tar xf hosts.tar.gz 
解压到固定的位置
tar xf 包名 -C 路径  表示解压到指定位置

[root@oldboyedu ~]# ll /opt/
total 0
[root@oldboyedu ~]# tar xf /tmp/hosts.tar.gz -C /opt/
[root@oldboyedu ~]# ll /opt/
total 82516
-rw-r--r-- 1 root root 84485563 Nov  5 10:43 hosts
-rw-r--r-- 1 root root       85 Nov  4 10:56 oldboy.txt
 -rw-r--r-- 1 root root      986 Nov  6 10:16 passwd

查看压缩包中的文件名称

...				
[root@oldboyedu ~]# tar tf /tmp/hosts.tar.gz 
hosts
oldboy.txt
passwd

zip打包与解压

打包
zip 包名.zip 需要打包的内容

解压
unzip 包名字
      -d 指定解压的位置
原文地址:https://www.cnblogs.com/hsqKTm/p/13940902.html