使用shell脚本一键式解压压缩文件

话不多说,先上代码:

#!/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}     ----tar.gz类型的文件,这里是截取最后6位
	    tarName=${fileName:0-3}      ----tar类型的文件,截取最后3位
	    zipName=${fileName:0-3}      ----zip类型的文件,截取最后3位
	    if [ "$targzName" = "tar.gz" ];	  ----判断是否是tar.gz类型
	    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

我这里可以对tar.gz、gz、unzip压缩文件进行一键式解压到目标目录下,如需解压其他文文件,可以自行添加相关代码,具体解释说明看代码后面的注释。
使用的前提是目录要做好统一,先建文件夹software和install,将压缩文件拖进software里,在进行解压。这里最好和我这里的目录建的一样,为了方便起见。
PS: 上面文件类型的判断,可以统一截取最后3位,然后用case语句来判断,也是不错的选择。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章