Linux中tar的命令

发布网友

我来回答

5个回答

热心网友

tar 归档+压缩

语法:tar czvf newfile.tar.gz SOURCE

语法:tar czvf 压缩后的文件名(tar.gz tar.bz2) 需要压缩的文件或目录

常用参数:

-z, --gzip  以gzip方式压缩  扩展名: tar.gz

-j :   以bz2方式压缩的  扩展名:tar.bz2

-J:   以xz 方式压缩   扩展名:tar.xz

 

例1:创建.tar.gz 包

[root@xuegod63 ~]# tar cvf /root/etc.tar /etc

[root@localhost test]# tar zcvf /root/etc.tar.gz /etc  #归档,注意备份的名字后缀

[root@localhost test]# tar zxvf /root/etc.tar.gz    #解压缩

[root@localhost test]# tar xvf /root/etc.tar.gz      #解压缩

 

例2:创建.tar.bz2包

语法: #tar jcvf newfile.tar.bz2  SOURCE

[root@xuegod63 ~]#  tar -jcvf ~/etc.tar.bz2 /etc   

[root@xuegod63 ~]#  tar -jxvf ~/etc.tar.bz2     #解压缩

[root@xuegod63 ~]#  tar -xvf ~/etc.tar.bz2     #解压缩

[root@xuegod63 ~]#  tar jxvf ~/etc.tar.bz2 -C  /opt  #解压到opt目录下

 

例3:创建.tar.xz包

[root@xuegod63 ~]#  tar -Jcvf ~/etc.tar.xz /etc

[root@xuegod63 ~]#  tar -Jxvf ~/etc.tar.xz       #tar.xz 这类包,解压缩

[root@xuegod63 ~]#  tar -xvf ~/etc.tar.xz  

对比三种压缩方式后压缩比例:

[root@xuegod63 ~]# time tar zcf /root/etc.tar.gz /etc

[root@xuegod63 ~]# time tar jcf /root/etc.tar.bz2 /etc

[root@xuegod63 ~]# time tar Jcf /root/etc.tar.xz /etc

[root@xuegod63 ~]# ll -h etc.tar*  (*为通配符,代表任意字符任意次)

-rw-r--r-- 1 0 root   28M 5月  10 12:10 etc.tar

-rw-r--r-- 1 0 root   8.7M 5月  10 12:14 etc.tar.bz2 #常用

-rw-r--r-- 1 0 root   9.8M 5月  10 12:11 etc.tar.gz #常用

-rw-r--r-- 1 0 root   7.0M 5月  10 12:16 etc.tar.xz #这个压缩比例最高,压缩的时间是最长

查看源文件大小

[root@xuegod63 ~]# -sh /etc

31M /etc

etc.tar包为28M ,实际几乎没怎么压缩。xz格式化为7.0M,传输的时候效率提高很多。

 

扩展:

解压指定文件到指定目录

[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz boot/grub2/grub.cfg

解压某一类型文件到指定目录

--wildccards 文件名匹配,使用通配符

[root@xuegod62 ~]# tar -tvf boot.tar.gz

[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz --wildcards *.mo

排除指定文件并解压

[root@xuegod62 ~]# rm -rf /opt/boot

[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz boot/grub2 --exclude=boot/grub2/i386-pc

热心网友

tar [-j|-z] [cv] [-f 建立的档案名] filename...《==打包与压缩

tar [-j|-z] [tv] [-f 建立的档案名] 《==查看档案
tar [-j|-z] [xv] [-f 建立的档案名] [-C 目录] 《==解压缩
选项与参数:
-c:建立打包档案,可搭配-v来观察过程中被打包的档案名(filename)
-t:查看打包档案的内容含有那些档案
-x:解压缩的功能,可以搭配-C在特定的目录解开;-c、-t、-x不能同时出现在一串指令列中。
-j:透过bzip2的支持进行压缩/解压缩:此时档案名最好为*.tar.bz2
-z:透过gzip的支持进行压缩/解压缩:此时档案名最好为*.tar.gz
-v:在压缩/解压缩的过程中,将正在处理文件名显示出来
-f filename:-f后面要立刻接被处理的档案名!建议-f单独写一个选项
-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

热心网友

举个例子来说吧。
如果已经存在用户rehdat, 文件/root/filetext.tar(这种格式只是单纯的打包,当然权限是只有root才能读写)。
[root@redhat ~]# tar -xf filetext.tar -C /home/redhat/
[root@redhat ~]# tar -zxf filetext.tar.gz -C /home/redhat/
(对使用gzip格式压缩的包进行解压缩)
[root@redhat ~]# tar -jxf filetext.tar.bz /home/redhat/
(对使用bzip2格式压缩的包进行解压缩)
如果想要使用普通用户进行解压缩,那就必须赋予权限,实际操作命令还是一样的。

热心网友

你的这个文件是个什么格式的?是单纯的打了个包还是.gz或者bz2格式的文件?如果你也不知道你可以用 file filetext.tar 来查案下这个文件的类型。
如果是.gz的
tar zxf filetext.tar.gz -C /home/普通用户的名字/Desktop
如果是bz2的
tar jxf filetext.tar.bz2 -C /home/普通用户的名字/Desktop
如果只是个tar包没有被压缩
tar xf filetext.tar.bz2 -C /home/普通用户的名字/Desktop

热心网友

解压:
tar -xvf /{文件路径}/filetext.tar -C /{目标路径}
要那个用户能用最好改下权限:
chown {登录用户名}:{登录用户组} /{目标路径}/{解压的文件}

{} 及{} 里面的内容用实际环境中内容代替

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com