前言:本文参考《鸟哥的Linux 私房菜》,如有说的不对的地方,还请指正!谢谢!
环境:Centos 6.4
和window不同,在Linux压缩文件需要注意的是,压缩后的文件会把源文件给替代,无论是gzip、bzip2、xz 均不支持压缩目录,要达到压缩目录的目的,需要用到tar指令。
![](https://i-blog.csdnimg.cn/blog_migrate/6f4497dc473eb1912068262ff9275e84.png)
gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
gunzip file1.gz / gzip -d file1.txt.gz 解压一个叫做 'file1.gz'的文件
gzip -9 -c services > services.gz 最佳的压缩比压缩,并保留源文件
zcat file1.gz 用来读取压缩就的源文件
备注:利用gzip压缩的文件,可以被window的WinRAR直接解压缩呢。
![](https://i-blog.csdnimg.cn/blog_migrate/1ab8d4d2b6235a41c73adcfe41b379ba.png)
就像gzip是为了取代老式compress压缩一样,bzip2是为了取代gzip出现的,它相对gzip来说,具有更好的压缩比。
bzip2 file1 压缩一个叫做 'file1' 的文件
bunzip2 file1.bz2 / bzip2 -d file1.bz2 解压一个叫做 'file1.bz2'的文件
bzcat file1.bz2 读取压缩文件的源代码
bzip2 -9 -c file1 > file1.bz2 最佳的压缩比压缩并保留源文件
![](https://i-blog.csdnimg.cn/blog_migrate/0dc93ca317a7644e3ff516651569c0fd.png)
备注:xz压缩和gzip和bzip2用法类似,它相对gzip和bzip2,具有更好的压缩比,但是他消耗的时间更长,几乎是gzip的一倍时间。
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
备注:zip压缩不会覆盖源文件,和Windows压缩相同
![](https://i-blog.csdnimg.cn/blog_migrate/188a1b8209f8c1081b46612b052aa1e3.png)
压缩目录/文件: tar -z -cv -f jo.tar.gz jo
查看压缩源文件:tar -z -tv -f jo.tar.gz
解压缩源文件: tar -zxv -f jo.tar.gz -C /tmp/jo2
备份/etc文件:su- 获得root权限,否则会出问题
time tar -jpcv -f /root/etc.tar.bz2 /etc time显示时间信息,p保留源文件权限,并不会保留根目录,如果坚持要保留根目录,可以用-P 来使用
筛选查看某个压缩文件 :tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
筛选打包时不包含某些文件: tar -jcv -f /root/system.tar.bz2 /root --exclude=/root/etc*
按某个时间点过滤进行压缩打包文件: tar -jcv -f /root/new.tar.bz2 /etc --newer-mtime /etc/passwd
文件的 Access time,atime 是在读取文件或者执行文件时更改的【文件的内容被取用时】。
文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的【内容数据】。
文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的【状态】。
文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的【内容数据】。
文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的【状态】。
压缩后的SELinux问题(未遇到过)
- 透过各种可行的救援方式登录系统,然后修改 /etc/selinux/config 文件,将SELinux 改成 permissive 模式,重新启动系统后就实现了
- 在第一次复原系统后 ,不要立即重新启动,先使用restorecon -Rv /etc 自动修复一下SELinux即可
- 透过各种可行的方式登录系统,建立 /.autorelabel文件,重新启动后系统会自动修复SELinux的类型,并且又会再次重新启动。