话不多说,先上代码:
#!/bin/bash
cd /opt/software ----文件的目录位置
count=`ls -l | grep '^-' | wc -l` ----保存当前目录下的文件个数,这里使用管道符来进行计算
if [ $count -ne 0 ]; ----文件个数不等于0开始进入条件
then
for file in `ls` ----遍历所有文件
do
fileName=$file ----将文件名进行保存,这里是方便后面截取文件类型作准备
targzName=${fileName:0-6} ----类型的文件,这里是截取最后6位
tarName=${fileName:0-3} ----tar类型的文件,截取最后3位
zipName=${fileName:0-3} ----zip类型的文件,截取最后3位
if [ "$targzName" = "" ]; ----判断是否是类型
then
tar -zxf /opt/software/$file -C /opt/install ----解压到/opt/install目录下
fi
if [ "$gzName" = "gz" ]; ----判断是否是gz类型
then
tar -xf /opt/software/$file -C /opt/install
fi
if [ "$zipName" = "zip" ]; ----判断是否是zip类型
then
unzip -d /opt/software/$file /opt/installl ----判断是否是zip类型
fi
done
else
echo "this direction is null"; -----如果没有文件,给出提示
fi
我这里可以对、gz、unzip压缩文件进行一键式解压到目标目录下,如需解压其他文文件,可以自行添加相关代码,具体解释说明看代码后面的注释。
使用的前提是目录要做好统一,先建文件夹software和install,将压缩文件拖进software里,在进行解压。这里最好和我这里的目录建的一样,为了方便起见。
PS: 上面文件类型的判断,可以统一截取最后3位,然后用case语句来判断,也是不错的选择。