写法1
#!/bin/bash
cd /root/sg/tar
ls *.tar>tar.log
#也有tgz后缀名的压缩包
ls *.tgz>>tar.log&>/dev/null
aa=$(cat tar.log|wc -l)
for(( i=1;i<="$aa";i++ ))
do
#去除tar文本中的内容,找出$i的行的内容,再取出第一列,也就是压缩包名,不带后缀名
bb=$(cat tar.log | awk 'NR=='$i'{print $1}')
# -C 选项的作用是:指定需要解压到的目录。
tar -zxvf $bb -C /root/sh/tar
done
写法2
#!/bin/bash
cd /root/sg/tar
ls *.tar>tar.log
#有几行就循环几次,这句话是废话,但还是要写
# $(cat tar.log) 存放的是一行行的压缩包名,把每一个压缩包名赋值给for后面的i,tar -zxvf $i中的i就是要解压的压缩包
for i in $(cat tar.log)
do
tar -zxvf $i
done