批次壓縮解壓tar系列的ShellScript

批次解壓:

#!/bin/sh
for unzipfile in $(ls *.tgz)
do
tar -zxf $unzipfile
echo "$unzipfile done!"
rm $unzipfile
done

====================

#!/bin/sh
這一行代表要使用的shell語言,最前面那個#不是註解掉這一行喔= =

for unzipfile in $(ls *.tgz)
.
.
done
這是個迴圈,會將 in 後面接的 list 傳到 unzipfile 作為變數使用
這邊寫上unvipfile其實就可以當做你在宣告這個變數了
這裡用的 list 是(ls *.tgz)
動作是列出與這個 shell 同一個路徑下的所有 .tgz 檔案
並將其檔名一次一個放到 unzipfile 裡面。

tar -zxf $unzipfile
解壓縮檔案,這行如果看不懂就去辜狗tar吧...
$unzipfile,這個是要被解壓縮的檔名,變數要使用時要加上 $ 符號

echo "$unzipfile done!"
這行純粹是讓使用者看到目前進行到哪個檔案了

rm $unzipfile

解壓縮完後刪除該壓縮檔

====================

批次壓縮:

#!/bin/sh
for zipfile in $(ls)
do tar -czf $zipfile.tgz $zipfile
echo "$zipfile done!"
rm -r $zipfile
done
====================
btw

你可以用 vi 或者任何你喜歡的編輯器輸入上面的 script 例如:

vi unzipfile.sh

#!/bin/sh
for unzipfile in $(ls *.tgz)
do
tar -zxf $unzipfile
echo "$unzipfile done!"
rm $unzipfile
done

:wq

執行方法有兩種

1.sh < unzipfile.sh
把這個 script 丟給 sh 執行

2.chmod a+x unzipfile.sh

./unzipfile.sh

把這個script變為可執行,然後直接執行他

沒有留言: