免费注册 查看新帖 |

Chinaunix

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

tar 档案列表的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-10 15:25 |只看该作者 |倒序浏览
小小弟使用以下两种方式tar 档案列表文件,1230个文件
1
cat /tmp/test.list |xargs tar cvf /tmp/upload.tar

2
tar cvf /tmp/upload.tar $(cat /tmp/test.list)

第二种可以正常备份,但第一种的tar档结果却只有列表后半部约591个文件,且tar 并无任何的err出现
请教版上前辈是否有遇过类似问题?

论坛徽章:
0
2 [报告]
发表于 2009-03-10 16:13 |只看该作者

回复 #1 angusfz 的帖子

直接写成
  1. tar cvfF upload.tar test.list
复制代码
就行了,干嘛麻烦!

[ 本帖最后由 ruifox 于 2009-3-10 16:18 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-03-10 16:15 |只看该作者

回复 #2 ruifox 的帖子

我看明白了,如果最后面是一个文件夹的,打包的就是最后一个文件夹里的东东。

论坛徽章:
0
4 [报告]
发表于 2009-03-10 16:22 |只看该作者
原帖由 ruifox 于 2009-3-10 16:13 发表
直接写成 tar cvfF upload.tar test.list就行了,干嘛麻烦!


  -F, --info-script F --new-volume-script F
              run script at end of each tape (implies --multi-volume)
请教:-F是什么功能,没用过,man出来的不太明白!test.list只是个普通文件,不是脚本吧,可以这样实现功能吗?

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-03 17:33:52数据库技术版块每日发帖之星
日期:2015-09-21 06:20:00
5 [报告]
发表于 2009-03-10 16:33 |只看该作者
我想大概xargs是分批传的,最后一批tar覆盖了。

[ 本帖最后由 w3wu 于 2009-3-10 16:48 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-03-10 16:36 |只看该作者
原帖由 ruifox 于 2009-3-10 16:13 发表
直接写成 tar cvfF upload.tar test.list就行了,干嘛麻烦!

1

tar cvfF /tmp/upload_test.tar /tmp/test.list

tar: Cowardly refusing to create an empty archive



F选项的意义是? 刚刚man了一下

  -F, --info-script F --new-volume-script F
  run script at end of each tape (implies -M)



不是很清楚



2

cat /tmp/test.list |xargs tar cvf /tmp/upload.tar

ruifox 说的对,刚刚想了一下确实是这样执行的

但实际上在shell执行时,tar档里却有500多个不同目录下的列表文件

环境是AS4u4

论坛徽章:
0
7 [报告]
发表于 2009-03-10 16:56 |只看该作者
原帖由 oldoger 于 2009-3-10 16:15 发表
我看明白了,如果最后面是一个文件夹的,打包的就是最后一个文件夹里的东东。


不对,是我想当然了!(上面的回复已修改)我试了一下:
cat file|xargs tar cvf upload.tar 确实可以生成全部的tar包,估计还是文件过多的原因

论坛徽章:
0
8 [报告]
发表于 2009-03-10 17:03 |只看该作者
原帖由 angusfz 于 2009-3-10 16:36 发表

1

tar cvfF /tmp/upload_test.tar /tmp/test.list

tar: Cowardly refusing to create an empty archive



F选项的意义是? 刚刚man了一下

  -F, --info-script F --new-volume-script F
& ...

  1. -F 的意思是指定包含打包文件或目录列表的文件
  2. -f  的意思是指定生成打包文件名
复制代码
如:文件list的内容为
  1. /tmp/aa
  2. /tmp/bb
复制代码

  1. tar cvfF list.tar list
复制代码
就相当于
  1. tar cvfF list.tar /tmp/aa /tmp/aa
复制代码
但我不知道这种用法受不受文件数量影响,需要确定一下!

看报错好像是test.list的问题,需要贴上来看一下!

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
9 [报告]
发表于 2009-03-10 17:04 |只看该作者
xargs tar uvf

论坛徽章:
0
10 [报告]
发表于 2009-03-10 17:06 |只看该作者
原帖由 ruifox 于 2009-3-10 17:03 发表


-F 的意思是指定包含打包文件或目录列表的文件
-f  的意思是指定生成打包文件名如:文件list的内容为
/tmp/aa
/tmp/bb则
tar cvfF list.tar list就相当于
tar cvfF list.tar /tmp/aa /tmp/aa但我不知道 ...


谢谢,学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP