虽然gzip与bzip2也能针对目录来进行压缩,不过这两个目录的压缩指的是将目录内的所有文件“分别”进行压缩的操作。
这种将多个文件或目录包成一个大文件的命令功能,我们可以称呼它是一种“打包命令”。Linux下面就是鼎鼎大名的tar。tar可以将多个目录或文件打包成一个大文件,同时还可以通过gzip/bzip2的支持,将该文件同时进行压缩。
tar的参数非常多,我们只讲几个常用的参数,更多参数可以自行man tar查询。
其实最简单的使用tar就只要记忆下面的方式即可:
- 压缩 : tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称。
- 查询 : tar -jtv -f filename.tar.bz2
- 解压缩 : tar -jxv -f filename.tar.bz2 -C 欲解压的目录
那么filename.tar.bz2是我们自定义的文件名,tar并不会主动产生创建的文件名。我们要自定义。所以扩展名就很重要了。如果不加[-j|-z]的话,文件名最好取为.tar即可。如果是-j参数,代表有bzip2的支持,因此文件名最好就取为.tar.bz2,因为bzip2会产生.bz2的扩展名。至于如果是-z参数,代表了gzip的支持,因此文件名最好就取为*.tar.gz。
使用tar加入-j或-z的参数备份/etc/目录
看到两种压缩的方式了吗,bzip2压缩确实比gzip压缩率高,所以推荐用bzip2来进行备份。
查询tar文件的数据内容(可查看文件名),与备份文件名是否有根目录的意义
要查看文件名非常简单,可以这样做:
将解压缩的文件解压到指定位置(-C参数的应用)
仅解开单个文件的方法
首先我们需要使用-jtv找到你要的文件名,然后将该文件名解开即可。
1.先找到我们要的文件名,假设解开shadow文件。
2.将该文件解开。语法和实际如下:
打包某目录,但不包含该目录下的某些文件的做法(–exclude=FILE)
假设我们想要打包/etc /root 这几个重要的目录,但却不想要打包/root/etc*开头的文件,因为该文件我们都是刚才已经创建的备份文件。而且假设这个新的打包文件要放置称为/root/system.tar.bz2,当然这个文件不要自己打包自己(因为这个文件放置在/root下面),此时我们可以通过–exclude的帮忙。so you can do that:
详情可参见<鸟哥的Linux私房菜>第九章 ->Linux文件与文件系统的压缩与打包