Linux基础命令—压缩归档

基础知识

1.什么是归档
实际上就是将一堆文件或者目录合并为一个特殊的文件
归档和压缩是由实质上的区别的
归档后的文件会越来越大
压缩
压缩文件或者目录的空间大小

2.为什么要压缩
当我们在传递文件或者目录的时候都会选择将其进行压缩然后在进行传递
首先:压缩之后的文件通常要比压缩之前的小,26G的文件可以压缩至6G
其次:多个文件的传输非常慢,单个文件的传输非常快,并且也极大去节约网络的消耗

3.window和linux压缩包能否互通
问题: linux和windows的压缩包可以互通吗?
可以
在windows系统下,通常rar、zip,linux系统下用的最多的就是tar.gz和zip
相互之间可以通过zip包进行软件包之间的互通
rar包在linux中是不识别
windows可以识别tar.gz压缩包类型

window ->linux 选择使用zip包
linux -> window zip tar.gz 

压缩工具

zip压缩工具
压缩
zip [压缩包名称] [压缩的文件]
 选项:
  -r #压缩目录
压缩100M_1-3
# zip 100M.zip 100M_*
压缩100M目录
# mkdir 100M
# mv 100M_* 100M
# zip 100M2.zip -r 100M
查看压缩包中的文件
# zipinfo
# zipinfo 100M.zip
解压缩
unzip -d [解压的目录] [压缩包]
将100M.zip中的文件解压至/tmp目录下
# unzip -d /tmp/ 100M.zip 
gz 压缩工具
压缩 
# gzip 100M_1
解压缩 
# gzip -d 100M_1.gz

xz 压缩工具
压缩 
# xz 100M_3
解压缩 
# xz -d 100M_3.xz
bz2 压缩工具
压缩 
# bzip2 100M_2
解压缩 
# bzip2 -d 100M.bz2

总结:gzip bzip2 xz 的缺陷,只能用于文件压缩 在于压缩的时候源文件会消失,解压缩的时候压缩文件会消失

归档工具

tar 
    选项:
        c 创建归档 
        f 指定压缩包名称
        z 与gzip压缩工具结合
        j bzip2压缩工具相结合
        J xz压缩工具结合
        t 查看压缩包
        v 详细信息
        x 解压
        -C 指定解压路径
        排除文件(压缩中)
        --exclude 排除文件
        --exclude-from 排除文件(指定文件列表)
        .tar.gz(推荐)    .tar.bz2  .tar.xz 
压缩      czf        cjf       cJf
查看      tf 
解压缩     xf 

例1:将100M_*开头的文件全部进行压缩
.tar.gz
# tar czf 100M.tar.gz 100M_*

.tar.bz2
# tar cjf 100M.tar.bz2 100M_*

.tar.xz
# tar cJf 100M.tar.xz 100M_*

例2:将100M_*开头的文件全部压缩到/tmp/100M.tar.(gz|bz2|xz)目录下
.tar.gz 
# tar czf /tmp/100M.tar.gz 100M_*

例3:将/etc/目录压缩到/tmp目录下名为etc.tar.gz,并且查看其详细的压缩过程
# tar czvf /tmp/etc.tar.gz /etc

查看压缩包的内容 
例4:查看/tmp/etc.tar.gz的文件内容
# tar tf /tmp/etc.tar.gz 

例5:查看/tmp/etc.tar.gz压缩包内的文件参数
# tar tvf /tmp/etc.tar.gz 

例6:将/etc/下的文件内容进行压缩,无需etc目录?
# cd /etc 
# tar czf /opt/etc.tar.gz *

警告信息:
tar: Removing leading `/' from member names
当前未在根目录下开始压缩
解决方法:
# cd /
# tar czf etc.tar.gz etc/

# tar czf tmp.tar.gz /tmp 2>/dev/null

解压缩
例7:将100M.tar.gz进行解压至/tmp目录中
# tar xf 100M.tar.gz -C /tmp

例8:将100M.tar.gz解压至/opt目录下,并且查看详细的过程
# tar xvf 100M.tar.gz  -C /opt

准备基础环境
# mkdir test
# touch test/{1..10}.txt

例9:将test目录进行压缩,压缩到/tmp目录下排除文件1.txt 2.txt
# tar czf /tmp/test.tar.gz test --exclude 1.txt --exclude 2.txt 

例10:将test目录进行压缩,压缩到/tmp/test2.tar.gz,排除文件1-5.txt
# cat > file.list <<EOF
# 1.txt
# 2.txt
# 3.txt
# 4.txt
# 5.txt
# EOF

# tar czvf /tmp/test2.tar.gz test --exclude-from file.list

扩展

如何查看目录的大小
# du -sh 目录名

生成三个100M的文件
# dd if=/dev/zero of=文件的名称 bs=文件的大小 count=执行的次数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值