一起来学linux:压缩与解压缩

摘要:
在Linux场景中,通常有以下压缩文件格式:1。Zcompress程序2*压缩的文件。gzgzip程序3*。bz2bzip2程序4*。tar程序打包的文件。Gzip没有此功能。压缩后,原始文件也将被删除。gzip或bzip2只能压缩一个文件,而不能压缩多个文件。tar有很多参数,主要包括几个重要的参数:-c:创建一个新的打包文件-t:查看打包文件中的文件-x:解包和解压函数-j:通过bzip2压缩/解压。

Linux场景下一般存在如下的压缩文件格式:

1 .Z compress程序压缩的文件

2 *.gz gzip程序压缩的文件

3 *.bz2 bzip2程序压缩的文件

4 *.tar tar程序打包的文件。没有经过gzip的压缩

5 *.tar.gz tar程序打包的文件,经过gzip的压缩

6 *.tar.bz2 tar程序打包的文件,经过bz2的压缩

其中现在用得最多的就是gzip以及bzip2的方式,tar其实是讲所有的文件集中到一个文件夹里面,并么有提供压缩。

先来看下gzip的使用方式:

-c: 将压缩的数据输出到屏幕上,

-d:解压缩的参数

-t: 可以用来校验文件的一致性,查看文件是否有无错误

-v:显示出原始文件与压缩文件的压缩比

-#:压缩等级,从19-9最慢

root@zhf-linux:/home/zhf/zhf# gzip -v python.vim

python.vim: 69.1% -- replaced with python.vim.gz


再来看下bzip2的命令:

-c: 将压缩过程产生的数据输出到屏幕上

-d:解压缩的参数

-k:保留原文件,而不会删除原始的文件

-z:压缩的参数

-v:显示压缩比

-#:压缩等级,从19-9最慢

用法都和gzip差不多,但是有一个不同点在于,-k, 输入这个后可以保留原文件存在。gzip没有这个功能,压缩后原文件也被删除了


不管是gzip还是bzip2都只能对一个文件进行压缩,而不能对多个文件进行压缩。

root@zhf-linux:/home/zhf/zhf# gzip python_prj

gzip: python_prj is a directory – ignored


因此这里需要用到打包命令,先将不同的文件打包到一个文件夹里面然后进行压缩。tar的参数很多,主要介绍几个重要的

-c: 新建打包文件

-t:查看打包文件里面有那些文件

-x:解打包和解压缩的功能

-j:通过bzip2进行压缩/解压缩。文件名一般为 *.tar.bz2

-z:通过gzip进行压缩/解压缩.文件名一般为 *.tar.gz

-v:压缩和解压缩的过程中,将正在处理的文件名显示出来

-f:要被处理的文件名

-C:特定目录解压缩

-p:保留备份数据的权限与属性


命令如下, -f 首先是将要被压缩的文件名,然后是需要压缩的文件夹

root@zhf-linux:/home/zhf/zhf# tar -zpcv -f /home/zhf/zhf/test.tar.gz /home/zhf/zhf/test

tar: Removing leading `/' from member names

/home/zhf/zhf/test/

/home/zhf/zhf/test/test2/


同样查看的时候也可以看对对应文件里面的权限。

root@zhf-linux:/home/zhf/zhf# tar -ztv -f /home/zhf/zhf/test.tar.gz

drwxr-xr-x root/root 0 2017-08-28 21:34 home/zhf/zhf/test/

drwxr-xr-x root/root 0 2017-08-28 21:34 home/zhf/zhf/test/test2/


同样的如果想用bz2的方式,命令改成tar -jpcv -f /home/zhf/zhf/test.tar.gz /home/zhf/zhf/testtar -jtv -f /home/zhf/zhf/test.tar.gz就可以了

对应的解压缩方式:或者是tar -jxvf test.tar.bz2

root@zhf-linux:/home/zhf/zhf# tar -zxvf test.tar.gz

home/zhf/zhf/test/

home/zhf/zhf/test/test2/



再来看另外一个命令dddd的主要作用在于备份文件或者是分区的内容:

比如备份一个文件

root@zhf-linux:/home/zhf/zhf# dd if=/home/zhf/zhf/test.txt of=/home/zhf/test.back

0+0 records in

0+0 records out

0 bytes copied, 0.000470738 s, 0.0 kB/s

免责声明:文章转载自《一起来学linux:压缩与解压缩》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数在Vue中使用了Swiper ,从后台获取动态数据后,swiper滑动失效下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

搜狗拼音输入法LINUX版安装

搜狗拼音输入法LINUX版官方下载: http://pinyin.sogou.com/linux/?r=pinyin 一、添加fcitx的nightlyPPA 在终端中输入: sudo add-apt-repository ppa:fcitx-team/nightlysudo apt-get update 二、安装fcitx,搜狗输入法附加组件 打开软件中...

Linux/CentOS系统同步网络时间的2种方法详解

方法一:用 ntpdate从时间服务器更新时间 如果系统没有 ntpdate 命令,可在线安装:       yum -y install ntp 安装完了之后,你不要做什么配置,也不需要,直接测试一下 [root@snsgou-pc src]# date 2015年 05月 20日 星期三 22:42:19CST [root@snsgou-pc src]...

linux报错-bash: xhost: command not found

本帖转自倔强小梦https://www.cnblogs.com/xphdbky/p/8243008.html 倔强小梦参考自:http://blog.csdn.net/csdnones/article/details/51513163,感谢原作者解决了我的问题。  在root用户下执行xhost +,报以下错误,原因是因未没有安装相关的包(其他类似comm...

linux 下nginx

所有的配置文件都在/etc/nginx (ect/nginx/nginx.conf) 下,并且每个虚拟主机已经安排在 了/etc/nginx/sites-available 程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中 并已经在/etc/init.d/下创建了启动脚本 nginx -------------------...

Linux命令行下批量重命名文件名为数字索引编号(0~N.xxx)的方法

在处理一些数据集的时候,我们经常会碰到数据集的文件名是按时间戳(time stamp),或者其他方式命名的文件,如: 12345679.jpg, sunshine.txt 而我们在编写程序时,往往希望读入的这些数据集的文件名是一种更简洁的形式,比如按照索引(index)方式:1.png,2.png,3.png...,那么如何批量重命名一个文件夹下的文件名呢...

04: gitlab安装与使用

1.1 gitlab安装(192.168.56.12中安装)   1、GitLab是什么?       1. GitLab实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。       2. GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。       3. 可以管理团队对仓库的访问,它非常易于浏览提交...