免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2168 | 回复: 7
打印 上一主题 下一主题

请教,想把机器上所有的'*.sh'的文件打包,有什么好办法么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-30 11:44 |只看该作者 |倒序浏览
如题,谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-07-30 11:56 |只看该作者
先find,生成一个列表,然后tar

find / -name "*.sh" -exec tar cvf yourfile.tar {} \;

论坛徽章:
0
3 [报告]
发表于 2007-07-30 11:58 |只看该作者
tar的参数应该是用rvf,不好意思

论坛徽章:
0
4 [报告]
发表于 2007-07-30 12:00 |只看该作者
find . -name "*.sh" | cpio -cbo > a.cpio  // 打包
cpio -dic < a.cpio  //提取

论坛徽章:
0
5 [报告]
发表于 2007-07-30 12:15 |只看该作者
机器会不会搞死哦
不如用locate

论坛徽章:
0
6 [报告]
发表于 2007-07-30 12:40 |只看该作者

多谢!!

sonorous  给的很好用,搞定!
多谢!!

论坛徽章:
0
7 [报告]
发表于 2007-07-30 12:49 |只看该作者
提醒一下楼上的,如果你的.sh文件非常多,比如n万个,效率会很低。
主要是因为find -exec项会反反复复的调用tar,起停无数次的进程,另外一个原因是
对于tar来说,r项对于已经存在的tar文件,反复打开写入,也是个效率上的损失。
这次对.sh打包,我相应.sh文件不会太多。其实方法真的很多,比如
tar cf - $(find . -name "*.sh" -type f) | gzip > all.sh.tar.gz
我相信是个对于文件数小的情况,就是一个很好的打包方式。
如果文件数非常多,cpio确实是个非常好的选择。
当然,要是你机器上没有cpio就另当别论。unix下,对于一个工作,可以完成的方法很多,
你需要选择的就是适合你的,并且你要知道各种实现的优劣。做到心中有数,这样,当面对的
环境变化了,也能随之改变策略。这也是我喜欢unix的原因。

[ 本帖最后由 ivhb 于 2007-7-30 12:54 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-07-30 13:14 |只看该作者
楼上说得对,如果文件多的话,tar rvf确实会降低效率,影响机器性能

建议使用cpio,应该是不错的选择,或者用zip, dump应该也可以,前堤是你机器上有
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP