免费注册 查看新帖 |

Chinaunix

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

如何在shell中实现 解开tar包,并删除tar包的功能。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-20 14:21 |只看该作者 |倒序浏览
在一个目录中有n个tar包,并且会不断的有新的tar包放进来。

我想用shell实现这样的功能:

把一个tar包解开到当前目录,解完后删除这个tar包。如此循环,避免删除未解开的tar包。

论坛徽章:
0
2 [报告]
发表于 2004-08-20 15:01 |只看该作者

如何在shell中实现 解开tar包,并删除tar包的功能。

我想了一个办法:
filenum=`find . -name "*.tar"|wc -l`

while [ "$filenum" -gt 0 ] ;
do
  filename=`find . -name "*.tar"|sed -n '$p'`
  echo $filename
  tar -xf $filename
  rm -f $filename
  filenum=`find . -name "*.tar"|wc -l`
  echo $filenum
done

论坛徽章:
0
3 [报告]
发表于 2004-08-20 15:17 |只看该作者

如何在shell中实现 解开tar包,并删除tar包的功能。

#!/bin/ksh
cat /dev/null >filelist
cat ls *.tar >fileslist
while read line
do
tar xvf  $line
done < filelist

rm *.tar

论坛徽章:
0
4 [报告]
发表于 2004-08-20 15:37 |只看该作者

如何在shell中实现 解开tar包,并删除tar包的功能。

for ftar in $1
  if [ ${ftar##*.} = 'tar' ]
    then
       tar -xf $ftar
   rm -f $ftar
  fi
done
只要把目录名作为参数就可以了!

论坛徽章:
0
5 [报告]
发表于 2004-08-21 09:01 |只看该作者

如何在shell中实现 解开tar包,并删除tar包的功能。

thanx!!

论坛徽章:
0
6 [报告]
发表于 2004-08-21 09:18 |只看该作者

如何在shell中实现 解开tar包,并删除tar包的功能。

原帖由 "佳瑞"]#*.} = 'tar'  发表:

    then
       tar -xf $ftar
   rm -f $ftar
  fi
done
只要把目录名作为参数就可以了!


dir=/proclog/2nd_edition/te
for ftar in $dir
if [ ${ftar##*.} = 'tar' ]
then
    tar -xf $ftar
    rm -f $ftar
fi
done


./she.sh: line 3: syntax error near unexpected token `if'
./she.sh: line 3: `if [ ${ftar##*.} = 'tar' ] '

论坛徽章:
0
7 [报告]
发表于 2004-08-21 10:55 |只看该作者

如何在shell中实现 解开tar包,并删除tar包的功能。

  1. for file in *.tar;do
  2.     tar vxf $file && rm $file
  3. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP