文件打包与压缩(2)-打包命令tar
前面我们讲到了压缩命令,本节我们来看看打包命令。再次提醒一下:打包相当于把文件放到一个背包里,压缩相当于把背包的体积挤压的更小。
tar 的选项与参数非常的多!我们只讲几个常用的选项
[root@www ~]# tar [-j|-z|-J] [cv] [-f 创建的打包后的文件名] filename... <==打包与压缩
[root@www ~]# tar [-j|-z|-J] [tv] [-f 现有的打包文件的文件名] <==查看tar包里有哪些文件
[root@www ~]# tar [-j|-z|-J] [xv] [-f 现有的打包文件的文件名] [-C 目录] <==解压缩
选项与参数:
-c :创建打包文件,可搭配 -v 来察看过程中被打包的文件名
-t :查看打包文件的内容含有哪些文件
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j :使用bzip2进行压缩、解压缩,此时文件名一般命名为 *.tar.bz2
-z :使用gzip进行压缩、解压缩,此时文件名一般命名为 *.tar.gz
-J :使用xz进行压缩、解压缩,此时文件名一般命名为*.tar.xz
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
其他后续练习会使用到的选项介绍:
-p :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P :保留绝对路径,即允许备份数据中有根目录的路径形式
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
# 把/etc/目录内的文件打包并通过gzip压缩
[root@studyclub ~]# tar -zcv -f baketc.tar.gz /etc
[root@studyclub ~]# ls
anaconda-ks.cfg baketc.tar.gz
# 查看打包压缩的文件里有哪些文件
[root@studyclub ~]# tar -ztv -f baketc.tar.gz
# 接下来我们把上面打包压缩的文件解包、解压后放到当前用户家目录的jason目录下
[root@studyclub ~]# tar -zxv -f baketc.tar.gz -C ~/jason
[root@studyclub ~]# ls jason/
configobj.py dir-test etc # 发现多了一个etc目录,没错,这就是我们解包、解压以后的效果
# 打包/usr/bin目录并使用bzip2进行压缩,但是不包括printf文件
[root@studyclub ~]# tar -jcv -f bakbin.tar.bz2 /usr/bin --exclude=printf
如果仅仅是tar -cv -f file.tar,即只是做了打包,并没有压缩,我们就称file.tar为tarfile
如果是tar -jcv -f file.tar.bz2,即有打包有压缩,我们就称file.tar.bz2为tarball
请自行把bakbin.tar.bz2 文件解压到你的某个目录下(例如:~/jason目录),看看是不是printf没有被打包进来。
请自行下载这个文件:https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.12.9.tar.xz,然后把它解压到你的某个目录下(例如:~/jason目录)
请总结:tar命令的选项中大写字母C和小写字母c的作用的区别
新手应知:
《Linux基础及进阶》:
031 - Linux账号管理(3)-用户组配置文件
032 - Linux账号管理(4)-useradd/usermod/passwd
033 - Linux账号管理(5)-userdel、id、groupadd、groupmod、groupdel
034 - Linux账号管理(6)-身份确认及用户登录信息
035 - Linux账号管理(7)-身份切换su、sudo
036 - 文件打包与压缩(1)-常见的压缩命令
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
微信号|bjdream-1
Cloud研习社 ·