当前位置: 技术问答>linux和unix
怎么用shell写把一个.gz的压缩包解压
来源: 互联网 发布时间:2017-03-07
本文导语: 今天我发现有我要解很多压缩包,于是我就想用shell编一个小程序,希望能通过这个程序来解决我的问题, 但是我不知道怎么来把那个压缩包的文件名给弄出来。大师们能否给一些建议啊???怎么可以写这个程...
今天我发现有我要解很多压缩包,于是我就想用shell编一个小程序,希望能通过这个程序来解决我的问题,
但是我不知道怎么来把那个压缩包的文件名给弄出来。大师们能否给一些建议啊???怎么可以写这个程序??
谢谢!!!
但是我不知道怎么来把那个压缩包的文件名给弄出来。大师们能否给一些建议啊???怎么可以写这个程序??
谢谢!!!
|
#!/bin/bash
# unzip the files with tar shell script
## define the directory of gz-packet and target.
GZDIR=$1
TARDIR=$2
## get the name of gz-packet
GZLIST=`ls ${GZDIR}`
##
for i in $GZLIST
do
tar zxvf ${GZDIR}/$i -C ${TARDIR}
done
echo DONE!
exit
这个脚本的用法是 比如/root/test 下有很多.gz的压缩包。(条件是全部都是.gz的压缩包。如果需要在目录下辨别是否是gz再解压的话,请告知,我再写。)
/root/target这个目录是你想将这些压缩包解压到的目录。
执行的时候这样 ./tartest.sh /root/test /root/target
已经成功测试
# unzip the files with tar shell script
## define the directory of gz-packet and target.
GZDIR=$1
TARDIR=$2
## get the name of gz-packet
GZLIST=`ls ${GZDIR}`
##
for i in $GZLIST
do
tar zxvf ${GZDIR}/$i -C ${TARDIR}
done
echo DONE!
exit
这个脚本的用法是 比如/root/test 下有很多.gz的压缩包。(条件是全部都是.gz的压缩包。如果需要在目录下辨别是否是gz再解压的话,请告知,我再写。)
/root/target这个目录是你想将这些压缩包解压到的目录。
执行的时候这样 ./tartest.sh /root/test /root/target
已经成功测试
|
改过如下:
#!/bin/bash
# file name : tartest.sh
# unzip the files with tar shell script
## define the directory of gz-packet and target.
GZDIR=$1
TARDIR=$2
## get the name of gz-packet
GZLIST=`ls ${GZDIR}`
NEWGZLIST=()
## get the .gz filename
NEWGZLIST=`find ${GZDIR} -name "*.gz"`
## unzip the gz-packet to the target directory
for i in ${NEWGZLIST}
do
tar zxvf $i -C ${TARDIR}
done
echo DONE!
exit
#!/bin/bash
# file name : tartest.sh
# unzip the files with tar shell script
## define the directory of gz-packet and target.
GZDIR=$1
TARDIR=$2
## get the name of gz-packet
GZLIST=`ls ${GZDIR}`
NEWGZLIST=()
## get the .gz filename
NEWGZLIST=`find ${GZDIR} -name "*.gz"`
## unzip the gz-packet to the target directory
for i in ${NEWGZLIST}
do
tar zxvf $i -C ${TARDIR}
done
echo DONE!
exit
|
find . -name "*.gz" -exec tar zxvf {} ;
|
find . -name "*.gz" -exec tar zxvf {} ;
find . -name "*.bz" -exec tar jxvf {} ;
find . -name "*.bz" -exec tar jxvf {} ;
|
那就直接写了。
tar zxvf ttt.tar.gz
find后面那个点好表示当前目录。大括号指的是find找到的文件。
tar zxvf ttt.tar.gz
find后面那个点好表示当前目录。大括号指的是find找到的文件。
|
楼主先试一下别人的答案啊