写法1

    1. #!/bin/bash
    2. cd /root/sg/tar
    3. ls *.tar>tar.log
    4. #也有tgz后缀名的压缩包
    5. ls *.tgz>>tar.log&>/dev/null
    6. aa=$(cat tar.log|wc -l)
    7. for(( i=1;i<="$aa";i++ ))
    8. do
    9. #去除tar文本中的内容,找出$i的行的内容,再取出第一列,也就是压缩包名,不带后缀名
    10. bb=$(cat tar.log | awk 'NR=='$i'{print $1}')
    11. # -C 选项的作用是:指定需要解压到的目录。
    12. tar -zxvf $bb -C /root/sh/tar
    13. done

    写法2

    1. #!/bin/bash
    2. cd /root/sg/tar
    3. ls *.tar>tar.log
    4. #有几行就循环几次,这句话是废话,但还是要写
    5. # $(cat tar.log) 存放的是一行行的压缩包名,把每一个压缩包名赋值给for后面的i,tar -zxvf $i中的i就是要解压的压缩包
    6. for i in $(cat tar.log)
    7. do
    8. tar -zxvf $i
    9. done