手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux基础教程:关于tar

[日期:2011-11-16] 来源:Linux社区  作者:linuxroad [字体: ]

tar这个软件非常强大,光看那help里面的参数就海多了.....我只说一些常用的指令。

-j 使用bzip2来压缩 ; -z 使用gzip来压缩  这两者当然不能同时使用了

-t 查看打包文件内有哪些文件  -x 解压或解打包  -c 打包  这三个指令也只能单一的存在,不能共存

-v 将在解压或压缩过程中的处理的文件显示出来

-f 后面接处理后的名字,比如我们压缩文件,那么-f后面接的一定是压缩后的文件名而不是被压缩的文件!如果是解压的话,那么-f后面接的一定是压缩文件名,而不是解压缩后的文件名。也可以这么说,-f后面就是接的压缩或打包文件。

-C 指定解压缩的目录。

-p 保存被压缩文件的权限不变。

--exclude=file  排除指定的文件

用gzip,bzip2方式来压缩多个文件
 [sunjiebin@rhel6 test]$ ls
libgtkmm-2.4.so.1  loo  ssh_config
以gzip打包多个文件并压缩,并显示被压缩的文件,指定文件名为gzip.tar.gz
[sunjiebin@rhel6 test]$ tar -zcvf gzip.tar.gz libgtkmm-2.4.so.1 loo/ ssh_config
libgtkmm-2.4.so.1
loo/
loo/ab.gz
loo/abc.gz
loo/lo/
loo/lo/abcd.gz
ssh_config
以bzip2打包并压缩,不显示处理的文件,指定文件名为bzip2.tar.gz
[sunjiebin@rhel6 test]$ tar -jcf bzip2.tar.bz2 libgtkmm-2.4.so.1 loo/ ssh_config
[sunjiebin@rhel6 test]$ ll
总用量 7296
-rw-r--r--. 1 sunjiebin hzh  969974 11月 12 15:52 bzip2.tar.bz2
-rw-r--r--. 1 sunjiebin hzh  1116181 11月 12 15:51 gzip.tar.gz
-rw-r--r--. 1 sunjiebin hzh  5373110 11月 12 14:40 libgtkmm-2.4.so.1
drwxr-xr-x. 3 root      root    4096 11月 11 00:43 loo
-rw-r--r--. 1 root      root    2047 11月 11 00:29 ssh_config

注意:f选项只能放在最后,因为f后面直接接的是处理后的文件名,如果用-jcfv的话,处理出来的文件就是v了!如:
[sunjiebin@rhel6 test]$ tar -jcfv test.tar.bz2 ssh_config
tar: test.tar.bz2:无法 stat: 没有那个文件或目录
tar: 由于前次错误,将以上次的错误状态退出
[sunjiebin@rhel6 test]$ tar -jcfv  ssh_config
[sunjiebin@rhel6 test]$ ls
bzip2.tar.bz2  gzip.tar.gz  libgtkmm-2.4.so.1  loo  ssh_config  v

查看压缩的文件内容
[sunjiebin@rhel6 test]$ tar -tvf gzip.tar.gz
-rw-r--r-- sunjiebin/hzh 5373110 2011-11-12 14:40 libgtkmm-2.4.so.1
drwxr-xr-x root/root          0 2011-11-11 00:43 loo/
-rw-r--r-- root/root          23 2011-11-11 00:40 loo/ab.gz
-rw-r--r-- root/root          24 2011-11-11 00:41 loo/abc.gz
drwxr-xr-x root/root          0 2011-11-11 00:43 loo/lo/
-rw-r--r-- root/root          25 2011-11-11 00:43 loo/lo/abcd.gz
-rw-r--r-- root/root        2047 2011-11-11 00:29 ssh_config
注意,t,x,c是不能共存的!查看bzip2的压缩档也可以这样查看。

解压压缩文件内容
我们先用root用户建一个文件夹root,然后用jxf来解压
[root@rhel6 test]# mkdir root
[root@rhel6 test]# tar -jxf bzip2.tar.bz2 -C root/
[root@rhel6 test]# ll root/
总用量 5256
-rw-r--r--. 1 sunjiebin hzh  5373110 11月 12 14:40 libgtkmm-2.4.so.1
drwxr-xr-x. 3 root      root    4096 11月 11 00:43 loo
-rw-r--r--. 1 sunjiebin hzh    2047 11月 11 00:29 ssh_config
我们再切换到普通用户sunjiebin,再解压看
[root@rhel6 test]# su sunjiebin
[sunjiebin@rhel6 test]$ mkdir user
[sunjiebin@rhel6 test]$ tar -jxf bzip2.tar.bz2 -C user/
[sunjiebin@rhel6 test]$ ll user/
总用量 5256
-rw-r--r--. 1 sunjiebin hzh 5373110 11月 12 14:40 libgtkmm-2.4.so.1
drwxr-xr-x. 3 sunjiebin hzh    4096 11月 11 00:43 loo
-rw-r--r--. 1 sunjiebin hzh    2047 11月 11 00:29 ssh_config
这时候我们会发现解压出来的文件所属者并不一样了。这里就涉及到了tar的两个默认参数-m -p。默认情况下,普通用户tar会加上一个-m的参数,即代表将文件解压为用户自身所有,且权限改为用户默认权限。而超级用户执行tar时,会加上一个-p参数,即保存文件原有的所有者及权限。

linux
相关资讯       Linux tar 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款