专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Solaris

[solaris]上tar命令怎么排除文件夹

发布时间:2011-06-27 19:08:46 文章来源:www.iduyao.cn 采编人员:星星草
[solaris]下tar命令如何排除文件夹

[solaris]下tar命令如何排除文件夹

今天处理重庆的事务碰到一个问题:在solaris下如何使用tar命令排除文件夹进行打包。向王伟请教了下终于解决了,拿出来大家分享一下:

场景及问题

   现有目录结构如下:
   dir1
   dir1/dfile1.txt
   dir1/dd1/dfile.txt
   dir2
   dir3
   要求使用tar进行打包,但是不包含目录[dir1/dd1].

解决方法

   ## 指定excludefiles文件内容 ##
   bash-2.05# echo dir1/dd1 > excludefiles
   ## 查看excludefiles文件内容 ##
   bash-2.05# more excludefiles
   dir1/dd1
   ## 打包excludefiles之外的所有内容 ##
   bash-2.05# tar -cvfX mytest.tar excludefiles *
   a dir1/ 0K
   a dir1/fd1.txt 1K
   dir1/dd1 被排除
   a dir2/ 0K
   a dir3/ 0K
   a dir4/ 0K
   a ex 1K
   ## 查看打包结果 ##
   bash-2.05# tar -ft mytest.tar
   dir1/
   dir1/fd1.txt
   dir2/
   dir3/
   dir4/
   excludefiles

   说明:tar的参数X用来指定排除的文件及目录,排除的文件及目录在excludefiles 文件中指定。

需要注意的问题

    1) 如果 tar -cvfX mytest.tar excludefiles * 改成 tar -cvfX mytest.tar excludefiles ./* 将无法排除指定内容目录及文件
    2) 如果修改 excludefiles 内容为 ./dir1/dd1 ,则 tar -cvfX mytest.tar excludefiles ./* 可以排除指定内容, 而 tar -cvfX mytest.tar excludefiles * 则无法成功
    分析原因 excludefiles 文件中指定内容应该和 ls命令执行结果相匹配,才能做到文件排除。
     如执行 tar -cvfX mytest.tar excludefiles /home2/zzyang/* , 则相应的excludefiles中内容应该为 /home2/zzyang/dir1/dd1

网上的其他方法

    网上找到的方法均无法解决该问题,貌似在linux下可以使用 --exclude=dirname 参数, 但是在solaris下无法执行成功。举一个网上的解决方法供大家参考:
[root@test xok.la]# ls -l
总用量 3
drwxr-xr-x   2 root root 1024 10月 29 21:20 xdir1
drwxr-xr-x   2 root root 1024 10月 29 21:21 xdir2
drwxr-xr-x   2 root root 1024 10月 29 21:21 xdir3
-rw-r--r--   1 root root     0 10月 29 21:21 xfile1
-rw-r--r--   1 root root     0 10月 29 21:21 xfile2
-rw-r--r--   1 root root     0 10月 29 21:21 xfile3
-rw-r--r--   1 root root     0 10月 29 21:21 xfile4
[root@test xok.la]# tar zcvf xok.la.tar.gz * --exclude=xfile1 --exclude=xfile2 --exclude=xdir1
xdir2/
xdir3/
xfile3
xfile4
[root@test xok.la]# tar ztf fd.tar.gz
xdir2/
xdir3/
xfile3
xfile4

[root@test xok.la]#

再次感谢王大拿。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: