文件的压缩/解压缩、打包(Linux系统)

一、Linux系统常见的压缩指令

在Linux的环境中,压缩文件的扩展名较多,大多是:“ .tar,  .tar.gz,  .tgz,  .gz,  .Z,  .bz2, *.xz ”,这是因为Linux支持的压缩指令非常多,且不同的指令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件。

几个常见的压缩文件扩展名:

  • Linux上常见的压缩指令就是gzip, bzip2以及最新的xz,至于compress已经退流行了。
  • Linux下的zip指令主要是为了支持windows常见的zip(ps:其实Linux也早就有zip指令)。
  • 这些压缩指令只能对一个文件来压缩和解压缩,因此,对于多个文件而言,则需要tar指令将多个文件“打包”成一个文件。
1.1  gzip, zcat/zmore/zless/zgrep

gzip可以说是应用度最广的压缩指令了!目前 gzip 可以解开compress, zip 与 gzip 等软件所压缩的文件。至于gzip所创建的压缩文件为  *.gz 的文件名。

现列举几个常用的操作,例如:

  • gzip -v  待压缩文件

注意:当你使用gzip进行压缩时,在默认的状态下原本的文件会被压缩成为.gz 的文件名,原始文件就不再存在了。这点与一般习惯使用 windows 做压缩的朋友所熟悉的情况不同!

  • gzip -c 待压缩文件 > 压缩文件

例如:gzip -c  services > services.gz

注意:-c可以将原本要转成压缩文件的数据内容,将它变成文字类型从屏幕输出,然后我们可以通过大于(>) 这个符号,将原本应该由屏幕输出的数据,转成输出到文件而不是屏幕,所以就能够创建出压缩挡了。只是文件名也要自己写,当然最好还是遵循   gzip的缩文件名要求较佳!!

  • gzip -d  压缩文件                    -------解压缩操作

例如:gzip -d  services.gz

注意:gzip -d可以用来解压缩,直接将压缩文件解压,解压后的文件名就是去掉“.gz”后的名字。

  • cat/more/less可以使用不同的方式来读取纯文本文件,而zcat/zmore/zless则可以对应于cat/more/less的方式来读取纯文本文件被压缩后的压缩文件。
  • zgrep中可以直接搜索压缩文件中的关键字。
1.2  bzip2,bzcat/bzmore/bzless/bzgrep

若说gzip是为了取代 compress 并提供更好的压缩比而成立的,那么bzip2则是为了取代gzip并提供更佳的压缩比而来的。    bzip2的用法几乎与gzip 相同。

例:

1.3  xz, xzcat/xzmore/xzless/xzgrep

虽然 bzip2已经具有很棒的压缩比,不过显然某些自由软件开发者还不满足,因此后来还推出了xz 这个压缩比更高的软件!这个软件的用法也跟 gzip/bzip2 几乎一模一样!

例:

二、打包指令: tar

前面谈到的指令大多仅能针对单一文件来进行压缩 ,而tar可以将多个目录或文件打包成一个大文件,同时还可以通过 gzip/bzip2/xz 的支持,将该文件同时进行压缩!

  

那个filename.tar.bz2是我们自己取的文件名,tar 并不会主动的产生创建的文件名喔!我们要自定义啦!所以扩展名就显的很重要了!如果不加[-z|-j|-J]的话,文件名最好取为.tar 即可。如果是-j 选项,代表有bzip2 的支持,因此文件名最好就取为    .tar.bz2,因为bzip2会产生.bz2的扩展名之故!至于如果是加上了 -z 的 gzip的支持,那文件名最好取为*.tar.gz啦!

另外,由于“ -f    filename”是紧接在一起的,过去很多文章常会写成“-jcvf  filename”,这样是对的,但由于选项的顺序理论上是可以变换的,所以很多读者会误认为“-jvfc  filename”也可以。事实上这样会导致产生的文件名变成 c!因为-fc嘛!所以啰,建议您在学习 tar时,将“ -f  filename ”与其他选项独立出来,会比较不容易发生问题。

因此,利用tar 进行压缩、查询和解压缩操作,常用的命令为:(ps:其中 -v 可有可无)

A. 压缩:

  • 对于文件 fileName.tar.gz,解压命令:tar -zcv -f fileName.tar.gz 要被压缩的文件或目录
  • 对于文件 fileName.tar.bz2,解压命令:tar -jcv -f fileName.tar.gz 要被压缩的文件或目录
  • 对于文件 fileName.tar.xz,解压命令:tar -Jcv -f fileName.tar.gz 要被压缩的文件或目录

B. 查询:

  • 对于文件 fileName.tar.gz,解压命令:tar -ztv -f fileName.tar.gz
  • 对于文件 fileName.tar.bz2,解压命令:tar -jtv -f fileName.tar.gz
  • 对于文件 fileName.tar.xz,解压命令:tar -Jtv -f fileName.tar.gz

C. 解压缩:

  • 对于文件 fileName.tar.gz,解压命令:tar -zxv -f fileName.tar.gz -C 欲解压缩的目录
  • 对于文件 fileName.tar.bz2,解压命令:tar -jxv -f fileName.tar.gz -C 欲解压缩的目录
  • 对于文件 fileName.tar.xz,解压命令:tar -Jxv -f fileName.tar.gz -C 欲解压缩的目录
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux文件查找与压缩干货 云计算干货 Linux系统配置及服务管理文件查找 文件查找 简介 which :命令查找 find: 文件查找,针对文件名 locate:文件查找,依赖数据库 一、命令文件查找 一、查找ls 命令的位置 # which ls //从PATH环境变量 或者 # whereis vim 二、任意文件 find 语法 find [path...] [options] [expression] [action] 命令 路径 选项 表达式 动作 ①按文件名: [root@qianfeng ~]# find /etc -name "hosts" [root@qianfeng ~]# find /etc -iname "hosts" find /etc -iname "HOSTS" -i忽略大小写 i可以忽略大小写来查找 [root@qianfeng ~]# find /etc -iname "hos*" 心中有爱(i),什么都找得到 结果输出 /etc/hosts 文件查找成功 ②按文件大小: [root@qianfeng ~]# find /etc -size +5M 文件>5M 这里“size”是大小意思 [root@qianfeng ~]# find /etc -size 5M 文件=5M [root@qianfeng ~]# find /etc -size -5M 文件<5M ③指定查找的目录深度: [root@qianfeng ~]# find / -maxdepth 3 -a -name "ifcfg-en*" 这里maxdepth是深度 后面的数字是几级目录 [root@qianfeng ~]# find / -maxdepth 4 -a -name "ifcfg-en*" ④按文件属主、属组找: [root@qianfeng ~]# find /home -user aaa // 属主是aaa的文件 [root@qianfeng ~]# find /home -group hr // 属组是hr组的文件 ⑤按文件类型: [root@qianfeng ~]# find /tmp -type f f普通文件 文件type关键词 [root@qianfeng ~]# find /dev -type b b块设备文件 ⑥按文件权限: [root@qianfeng ~]# find . -perm 644 -ls 关键词perm -ls 是find的动作之一,精确权限 ⑦找到后处理的动作 ACTIONS: 找到后删除 # find /etc -name "qwer.txt" -delete 找到后复制 # find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \; cp -rvf {} /tmp 对比cp /etc/passwd /tmp/etc1 找到的文件 连接符 前面找到的文件 结束符 文件打包压缩 tar命令是Unix/Linux系统中备份文件的可靠方法, 几乎可以工作于任何环境中,它的使用权限是所有用户。 建议针对目录 打包压缩 语法:tar 选项 压缩包名称 源文件 ===打包压缩=== # tar -cf etc.tar /etc # tar -czf etc-gzip.tar.gz /etc/ //z是gzip # tar -cjf etc-bzip.tar.bz /etc/ //j是bzip # tar -cJf etc-xzip.tar.xz /etc/ //J是xzip 观察三个包的体积。 # ll -h etc* -rw-r--r--. 1 root root 11M 10月 14 10:07 etc-gzip.tar.gz -rw-r--r--. 1 root root 8.9M 10月 14 10:08 etc-bzip.tar.bz -rw-r--r--. 1 root root 7.6M 10月 14 10:08 etc-xzip.tar.xz 压缩速度和压缩体积成反比。 解压,解包 查看,并没有解压 # tar -tf etc.tar //t查看f文件解压缩 # tar xf etc3.tar.xz # tar -xvf etc2.tar.bz2 -C /tmp //-C重定向到//tmp目录

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值