AIX下使用zip+split實(shí)現(xiàn)分卷壓縮

場景

與某第三方廠商使用文件接口傳遞數(shù)據(jù)。我們是發(fā)送方,對方是接收方,對方的接口規(guī)范要求對于大于500M文件,必須使用zip格式分卷壓縮。
本來在linux下使用zip分卷壓縮輕而易舉,直接調(diào)用系統(tǒng)的zip命令,加上-b參數(shù)即可,但恰巧我們的接口機(jī)是臺IBM小機(jī),AIX系統(tǒng)下的zip不支持分卷功能,需要與split命令結(jié)合實(shí)現(xiàn)分卷功能。

實(shí)現(xiàn)方案

  1. 先使用zip命令將目錄打包成單獨(dú)的zip文件
  2. 使用split命令將zip文件拆分
  3. 對于拆分出來的散亂文件,按格式要求批量重命名

格式要求

生成的文件名格式如下:
yyyymmdd_zzzz_RetentionPhotosSync_iiii_xxxx.zip
其中yyyymmdd為時間,xxxx為分卷序列號

分卷壓縮腳本

下面以名為testfolder的目錄為例,以5M大小,進(jìn)行分卷

使用zip命令,將整個目錄壓縮成.zip(對于目錄需要使用-r參數(shù))

zip -r tmpfile.zip testfolder

使用split命令,以5M為單位,將.zip進(jìn)行拆分,生成xaa、xab、xac...(以此類推)等多個文件

split -b 5m tmpfile.zip splitfile-

對于生成的xaa、xab、xac...散亂文件,按格式重命名

nowdate=`date +%Y%m%d`;n=0; for filename in `ls splitfile* `; do n=`expr ${n} + 1`; suffix=`printf %04d ${n}`; mv ${filename} ${nowdate}_zzzz_RetentionPhotosSync_iiii_${suffix}.zip ; done

清理臨時文件

rm tmpfile.zip

分卷解壓腳本

如果對端恰巧也是AIX系統(tǒng),可以用如下方式解壓縮

使用cat命令合并文件

cat yyyymmdd_zzzz_RetentionPhotosSync_iiii_*.zip > yyyymmdd_zzzz_RetentionPhotosSync_iiii.zip

使用unzip命令解壓

unzip yyyymmdd_zzzz_RetentionPhotosSync_iiii.zip
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,571評論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,228評論 2 33
  • 一、歸檔 tar-c: 建立壓縮檔案 ===> 歸檔-x:解壓 ====>解檔-t:查看內(nèi)容-r:向壓縮歸檔文...
    R_X閱讀 961評論 0 1
  • 為什么要整理一下Linux下的打包和壓縮工具呢?原因很簡單,因?yàn)橛龅絾栴}了:游戲服務(wù)器可執(zhí)行文件、配置和各種資源文...
    davidpp閱讀 9,978評論 0 18
  • 360借殼江南嘉捷預(yù)案公告后,江南嘉捷原股東收獲驚人回報,截至11月14日,已經(jīng)連續(xù)6個漲停,當(dāng)然漲停還沒有停。一...
    別枝月閱讀 260評論 1 0