話不多說,先上代碼:
#!/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語句來判斷,也是不錯的選擇。