Linux基础命令-echo输出信息_Linux学习中的博客-CSDN博客
Linux三剑客-grep命令_Linux学习中的博客-CSDN博客
Linux文件管理命令(3)-mv改动文件_Linux学习中的博客-CSDN博客
文章目录
前言
一、tar命令介绍
二、命令语法及常用参数
三、 参考案例
总结
前言
在工作上,有同事需要用到程序或一堆文件时,则需要先将文件打包后压缩一定比例后再传输到对方的电脑上,能节省硬盘的资源并且加快文件的传输速率;linux中有命令可以支持打包和压缩,一起看看吧。
一、tar命令介绍
tar命令的功能是用于打包、压缩和解压文件的,通过一些参数可以创建Linux系统中常见的格式,例:.tar、.tar.gz、.tar.bz2、.tar.xz等;对于RHEL7、CentOS7版本以后的系统,解压时可以不加压缩格式参数(如z,j,J),系统能补充对应格式的参数进行解压。
打包和压缩的概念:
1、打包是指将一大堆文件或者目录合成一个总的文件;
2、压缩则是将一个大的文件通过一些压缩算法变成一个小文件;
二、命令语法及常用参数
1)先用--help查看语法格式,由于这个命令的参数太多了,就不放出来了。
语法:tar 【选项】文件
[root@localhost ~]# tar --help用法: tar [选项...] [FILE]...
2)常用参数
三、 参考案例
tar命令比较特殊,如果打包、压缩、解压参数上加不加" - "都是正确格式。
1)打包目录文件 v表示执行过程,当然如果为了方便,也可以不加;
[root@localhost ~]# mkdir data[root@localhost ~]# touch data/{a..d}.txt[root@localhost ~]# tar cvf data.tar data/data/data/a.txtdata/b.txtdata/c.txtdata/d.txt[root@localhost ~]# tar cf data1.tar data[root@localhost ~]# file data.tar data.tar: POSIX tar archive (GNU)
可以看到这个文件还不是一个压缩的格式,目前只是作为打包文件,如果要让其打包并压缩,可以在加上参数 z、j、J等。
2)三个格式压缩比例,这里用/etc的目录做测试;
[root@localhost ~]# tar zcvf etc.tar.gz /etc[root@localhost ~]# du -h etc.tar.gz 12Metc.tar.gz[root@localhost ~]# tar jcvf etc.tar.bz2 /etc[root@localhost ~]# du -h etc.tar.bz2 11Metc.tar.bz2[root@localhost ~]# tar Jcvf etc.tar.xz /etc[root@localhost ~]# du -h etc.tar.xz8.4Metc.tar.xz
压缩比例从大到小 gz>bz2>xz ,并不是说压缩的越小就越好,每个参数都有它存在的意义,即使gz的压缩比例比其他要大一些,gz依然是市面上用的次数最多的格式,因为他压缩的速度很快,效率很高。并且由于现在的磁盘容量都不会说很小,所以对于用户来说,相差的那些容量影响不大,反而压缩的速率是更加看重的。
3)解压文件 ,可以先用-t参数查看有什么文件;
[root@localhost ~]# tar -tvf data.tar.gz #列出文件drwxr-xr-x root/root 0 -02-10 17:11 data/-rw-r--r-- root/root 0 -02-10 17:11 data/a.txt-rw-r--r-- root/root 0 -02-10 17:11 data/b.txt-rw-r--r-- root/root 0 -02-10 17:11 data/c.txt-rw-r--r-- root/root 0 -02-10 17:11 data/d.txt[root@localhost ~]# file data.tar.gz #格式是gzipdata.tar.gz: gzip compressed data, from Unix, last modified: Fri Feb 10 17:36:55 [root@localhost ~]# tar zxvf data.tar.gz #解压data/data/a.txtdata/b.txtdata/c.txtdata/d.txt
4)解压文件并且将文件移动到tmp目录下,使用-C参数;
[root@localhost ~]# tar -jxvf etc.tar.bz2 -C /tmp/
5)如果说要删除当前目录下jpg的文件,可以先打包,删除原始文件的,再删除包。
tar cvf jpg.tar *.jpg --remove-filesrm -f jpg.tar
总结
系统是linux时,难免会需要用到tar命令的,有时候在某些程序的官网上下载包,上传到服务器中,则需要用tar命令解压包;有些压缩格式其实都有自己的命令,像gzip、zip、bz2、xz都是命令来的,只不过日常使用中比较少用到这些命令,更多是习惯用tar这个命令。