一、背景介紹
最近領(lǐng)導(dǎo)給了一批文件,都是壓縮文件,且解壓出來(lái)還有可能包含壓縮文件,手工解壓實(shí)在是難以忍受,后來(lái)寫(xiě)了一個(gè)腳本來(lái)自動(dòng)解壓縮,但是腳本只是簡(jiǎn)單的遍歷當(dāng)前目錄下所有的壓縮文件并解壓,并不能遞歸的解壓縮,所以還需要手動(dòng)切換目錄,尋找壓縮文件,然而,解壓后新的目錄還有可能出現(xiàn)壓縮文件。以下是之前的解壓縮腳本:
[root@master 國(guó)內(nèi)字典]# cat un.sh #! /bin/sh for file in ./*.rar do if [ -f "${file}" ];then rar x "${file}" fi if [ $? == 0 ];then rm -f "${file}" fi done for file in ./*.7z do if [ -f "${file}" ];then 7za x "${file}" fi if [ $? == 0 ];then rm -f "${file}" fi done for file in ./*.zip do if [ -f "${file}" ];then unzip "${file}" fi if [ $? == 0 ];then rm -f "${file}" fi done for file in ./*.gz do if [ -f "${file}" ];then gunzip "${file}" fi if [ $? == 0 ];then rm -f "${file}" fi done后來(lái)學(xué)習(xí)了遞歸遍歷目錄的shell腳本,所以這件事情也可以由遞歸遍歷目錄的方式來(lái)做。這里就不多說(shuō)了,本文介紹另一種方法。
二、利用find命令尋找并解壓壓縮文件
- 其實(shí)我們可以簡(jiǎn)單的利用find名令來(lái)找出現(xiàn)在所有的壓縮文件,然后使用解壓軟件解壓,解壓后再使用find尋找壓縮文件來(lái)解壓,如此循環(huán)執(zhí)行,知道找不到壓縮文件為止。