通配符的问题请大家帮忙看看
时间:2011-05-30
来源:互联网
兄弟问我一个脚本问题,说循环脚本总是报错。
后来按照他的思路手工在终端执行也报错了。
他的目的是在a*.tgz压缩包里解压t*系列的文件,每个压缩包里t打头的文件夹名都不一样。
解压第一个压缩包用t*提取正常,解压第2个压缩包用t*提取时居然还是前面压缩包里的t1和t2目录,有点怪异,为什么不是t3和t4呢?哪位清楚请帮忙答疑下。
[root@t1 tmp]# tar ztvf a1.tgz
drwxr-xr-x root/root 0 2011-05-30 11:09:00 t1/
-rw-r--r-- root/root 10400 2011-05-30 11:09:00 t1/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:01 t2/
-rw-r--r-- root/root 10400 2011-05-30 11:09:01 t2/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:01 b1/
-rw-r--r-- root/root 10400 2011-05-30 11:09:01 b1/test1
[root@t1 tmp]# tar ztvf a2.tgz
drwxr-xr-x root/root 0 2011-05-30 11:09:02 t3/
-rw-r--r-- root/root 10400 2011-05-30 11:09:02 t3/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:03 t4/
-rw-r--r-- root/root 10400 2011-05-30 11:09:03 t4/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:01 b2/
-rw-r--r-- root/root 10400 2011-05-30 11:09:01 b2/test1
[root@t1 tmp]# tar ztvf a
[root@t1 tmp]# tar zxvf a1.tgz t*
t1/
t1/test1
t2/
t2/test1
[root@t1 tmp]# tar zxvf a2.tgz t*
tar: t1:归档中找不到
tar: t2:归档中找不到
tar: 由于前面延迟的错误而退出
后来按照他的思路手工在终端执行也报错了。
他的目的是在a*.tgz压缩包里解压t*系列的文件,每个压缩包里t打头的文件夹名都不一样。
解压第一个压缩包用t*提取正常,解压第2个压缩包用t*提取时居然还是前面压缩包里的t1和t2目录,有点怪异,为什么不是t3和t4呢?哪位清楚请帮忙答疑下。
[root@t1 tmp]# tar ztvf a1.tgz
drwxr-xr-x root/root 0 2011-05-30 11:09:00 t1/
-rw-r--r-- root/root 10400 2011-05-30 11:09:00 t1/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:01 t2/
-rw-r--r-- root/root 10400 2011-05-30 11:09:01 t2/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:01 b1/
-rw-r--r-- root/root 10400 2011-05-30 11:09:01 b1/test1
[root@t1 tmp]# tar ztvf a2.tgz
drwxr-xr-x root/root 0 2011-05-30 11:09:02 t3/
-rw-r--r-- root/root 10400 2011-05-30 11:09:02 t3/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:03 t4/
-rw-r--r-- root/root 10400 2011-05-30 11:09:03 t4/test1
drwxr-xr-x root/root 0 2011-05-30 11:09:01 b2/
-rw-r--r-- root/root 10400 2011-05-30 11:09:01 b2/test1
[root@t1 tmp]# tar ztvf a
[root@t1 tmp]# tar zxvf a1.tgz t*
t1/
t1/test1
t2/
t2/test1
[root@t1 tmp]# tar zxvf a2.tgz t*
tar: t1:归档中找不到
tar: t2:归档中找不到
tar: 由于前面延迟的错误而退出
作者: 剑次狼 发布时间: 2011-05-30
回复 剑次狼
tar 用法不对吧
tar 用法不对吧
作者: wtuter 发布时间: 2011-05-30
tar zxvf a2.tgz t*
经shell解释后实际运行的是
tar zxvf a2.tgz t1 t2 #因为t1 t2的存在,t*被解释成t1 t2
经shell解释后实际运行的是
tar zxvf a2.tgz t1 t2 #因为t1 t2的存在,t*被解释成t1 t2
作者: ywlscpl 发布时间: 2011-05-30
楼上正解~
作者: shplpy 发布时间: 2011-05-30
QUOTE:
tar zxvf a2.tgz t*
经shell解释后实际运行的是
tar zxvf a2.tgz t1 t2 #因为t1 t2的存在,t*被解释成 ...
ywlscpl 发表于 2011-05-30 12:27
经shell解释后实际运行的是
tar zxvf a2.tgz t1 t2 #因为t1 t2的存在,t*被解释成 ...
ywlscpl 发表于 2011-05-30 12:27
哦。明白了,因为解压a1的包已经释放了t1和t2目录,自然解压a2时的读取目录通配出t1和t2。原来如此,
解压完mv走了话在解压就不会出现这个问题了哦
被兄弟给绕迷糊了,惭愧惭愧,谢谢白云兄的提醒。
QUOTE:
[root@t1 tt2]# tar zxvf a3.tgz t*
t5/
t5/test1
t6/
t6/test1
[root@t1 tt2]# ls
a3.tgz a4.tgz t5 t6
[root@t1 tt2]# mkdir 444
[root@t1 tt2]# mv t* 444/
[root@t1 tt2]# ls
444 a3.tgz a4.tgz
[root@t1 tt2]# tar zxvf a4.tgz t*
t7/
t7/test1
t8/
t8/test1
t9/
t9/test1
ttt.sh
t5/
t5/test1
t6/
t6/test1
[root@t1 tt2]# ls
a3.tgz a4.tgz t5 t6
[root@t1 tt2]# mkdir 444
[root@t1 tt2]# mv t* 444/
[root@t1 tt2]# ls
444 a3.tgz a4.tgz
[root@t1 tt2]# tar zxvf a4.tgz t*
t7/
t7/test1
t8/
t8/test1
t9/
t9/test1
ttt.sh
作者: 剑次狼 发布时间: 2011-05-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28