文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>tar命令常用方法集锦

tar命令常用方法集锦

时间:2009-05-11  来源:nianzong


1. 用 tar 打包目录时排除某个子目录或文件的方法:

用到的参数:--exclude,  -X
格式:--exclude=path/to/subdir
     -X file
说明:--exclude等于后面的目录为相对目录,使用绝对目录则不生效。即路径最前面没有"/"
For example:
# mkdir -p testdir/{subdir01,subdir02}
# touch testdir/{a,b}{1,2} testdir/subdir01/s01 testdir/subdir02/s02
/tmp/testdir 
         --  a1
         --  a2
         --  b1
         --  b2
         --  subdir01/
                       -- s01
         --  subdir02/
                       -- s02
对/tmp/testdir目录打包,但排除里面的subdir01目录:

tar zcf testdir.tar.gz testdir --exclude=testdir/subdir01
或者:
tar zcf testdir.tar.gz testdir --exclude=subdir01

如果是要排除多个目录,则使用多个--exclude参数:
tar zcf testdir.tar.gz testdir --exclude=subdir01 --exclude=testdir/subdir02

PS:在网上看到有说tar如果是GNU版本的话,--exclude要放在备份目录的前面,即:
tar zcf testdir.tar.gz --exclude=testdir/subdir01 testdir

我的是RHEL5U2下的tar版本,各自验证了一下,在上面的例子中--exclude放在后面是没有问题的,另外我还分别在RHEL4U4和CentOS4.6上面都测试过了,不知道为何会有这种放在前面说法,但个人还是蛮推荐这个习惯的,呵呵。

如果要排除的目录或文件有一二十个或者更多,且没什么规律可循,可以使用-X参数,先将要排除的目录或文件的相对路径放到一个文件里,然后调用这个文件即可:
[root@localhost tmp]# echo "testdir/subdir01">>xfile
[root@localhost tmp]# echo "testdir/a1">>xfile
# tar -zcfX testdir.tar.gz xfile testdir

ps:使用调用文件的方式时要备份的目录必须放在最后。

2. "tar - xxx"格式用法:
[root@localhost tmp]# tar cf - testdir|gzip >testdir.tar.gz

应该是一种比较老的做法了,现在的tar都直接支持gz或者bz2压缩,分别加上-z和-j参数即可。
相关阅读 更多 +
排行榜 更多 +
儿童学英语

儿童学英语

学习教育 下载
今天开始生存

今天开始生存

动作格斗 下载
飞碟快闪

飞碟快闪

动作格斗 下载