1.压缩
常见的压缩命令有bzip2和gzip,但是都只能针对一个文件压缩/解压缩,因此出现了打包工具tar。其中gzip压缩后,源文件没有了,取而代之的是压缩文件.gz.
#压缩
gzip file
#解压缩
gzip -d file.gz
#查看压缩文件
zcat file.gz
#采用最佳压缩比,并保留源文件
gzip -9 -c file > file.gz
-c:将压缩的数据输出到屏幕上,可通过重定向来处理
-#:#可取1~9,其中1速度最快,9压缩比最好
bzip2比gzip提供更好的压缩比
#压缩
bzip2 file
#解压缩
bzip2 -d file.bz2
#读取压缩文件内容
bzcat file.bz2
#采用最佳压缩比,并保留源文件
bzip2 -9 -c file > file.bz2
#并保留源文件
bzip -k file
2.打包
tar将一文件打包成一个,并没有压缩的功能,但通过参数可以联合gzip和bzip2一起进行压缩打包。
#压缩并打包
tar -jcv -f file.tar.bz2 file
-c(create):创建打包文件
-v:查看打包过程
-j:通过bzip2压缩和解压缩
-f:文件名(-f选项建议单独写)
-z:通过gzip压缩和解压缩
#解压缩
tar -jxv -f file
-x:解打包,解压缩
#查看打包文件中有哪些文件
tar -t file.tar.bz2
再看几个选项
-C 目录 :解压缩时,可以选择特定目录
-p:保留备份数据的原本属性,常用于备份重要的配置文件
-P:保留绝对路径,即允许备份数据中含有根目录存在(重要!!!这个不要用,避免解压缩时覆盖源文件)
-exclude=FILE : 在压缩过程中,不要将FILE打包
解释-p选项,如下:在选项中加入了-p选项,首先会保留源文件的属性,其次在解压缩打包文件时会去掉绝对路径,只保留相对路径,
[root@localhost tmp]# tar -jcv -f etc.tar.bz2 /etc/
[root@localhost tmp]# tar -jxv etc.tar.bz2
被解压缩后的文件路径变成了 /tmp/etc/...
但如果加上-P选项,则会保留其源路径
仅解开单一文件的方法
[root@localhost ~]# tar -jcv -f etc.tar.bz2 /etc/
#先找到我们需要的文件名,假设解压缩shadow文件
[root@localhost ~]# tar -jtv -f etc.tar.bz2 | grep 'shadow'
#将该文件解压缩
[root@localhost ~]# tar -jxv -f etc.tar.bz2 etc/shadow(需要解压缩的文件名)
仅备份比某个时刻还要新的文件
#1.先找到比/etc/passwd还要新的文件
[root@localhost ~]# find /etc/ -newer /etc/passwd
#2.利用tar来进行打包