Linux压缩那些事
簡介
本文主要介紹互聯網上最主流的兩種壓縮格式(rar和zip)文件在Linux系統上的壓縮和解壓操作,包括分卷壓縮。本文不展開過多詳細的命令選項的講解,只列舉實際使用Linux系統最常用的一些命令。
ZIP
壓縮
將多個文件壓縮為一個zip壓縮包的命令如下。
zip myfile.zip file1 file2 …將多個同種文件壓縮為一個zip包的命令如下,如下面將所有jpg文件壓縮到一個壓縮包里。
zip myfile.zip *.jpg將一個目錄壓縮為一個壓縮文件,命令如下。
zip -r myfile.zip folder將一個目錄下的所有文件壓縮為一個壓縮包,命令如下。
zip -r myfile.zip folder解壓
解壓某個zip文件,命令如下。
unzip myfile.zip將某個zip文件解壓到某個特定目錄下,命令如下。
unzip myfile.zip -d /home/folder以不經過詢問直接覆蓋原文文件的方式將zip文件解壓到某個特定目錄下,命令如下。
unzip -o -d /home/folder myfile.zip分卷
我們其實經常遇到大文件需要分卷壓縮的情況(如百度網盤限制單文件上傳大小、微信限制單文件發送大小),因此也經常需要解壓分卷壓縮的文件。這在有圖形軟件的Windows上是很容易的事情,但對于沒有圖形界面的Linux服務器,則需要了解一下命令。
首先我們來看如何分卷壓縮文件,其實分為兩個步驟,那就是壓縮和分卷,先產生一個大的壓縮包在對其進行分卷即可。
先是生成壓縮包。
zip test.zip test.mp4然后對壓縮包進行分卷拆分,-s命令指定每個卷的大小,其中k表示kB,m表示MB,g表示GB而t表示TB。
zip -s 1g test.zip --out ziptest比如我這里將一個2.9G的大文件拆分為1G的分卷文件,產生如下的一些文件,其中test.zip是原始壓縮文件,后面的ziptest前綴的就是分卷壓縮的結果,通常我們收到的分卷壓縮文件就是這種格式。
. ├── test.zip ├── ziptest.z01 ├── ziptest.z02 └── ziptest.zip接著,我們來看如何分卷解壓文件,最常用的方法就是將多個同一前綴的分卷壓縮文件合并為一個壓縮文件然后解壓,這個過程分為合卷和解壓兩個步驟。
我們首先來看合卷操作,網上最多的教程就是使用cat命令進行文件合卷,如下。
cat ziptest.z* > ziptest.single.zip然后接著對該合卷文件進行解壓即可,命令如下。
unzip ziptest.single.zip但是此時有的分卷壓縮包會出現如下錯誤,這個錯誤是壓縮文件損壞,但是事實上我們這里的壓縮文件并沒有經過ftp等傳輸一直在本機上,因此我個人覺得是cat合并時順序不當。(事實上,我這里因為有拆分前的zip文件,我對比了一下它和我們使用cat合并后的zip文件的md5值,是不一樣的。)
因此,既然是zip拆的,我們用zip來合并文件,我們指定分卷文件序列中唯一的zip后綴的文件并進行修復(-F選項)后輸出為單文件。此時我們查看合并后的文件的md5值,發現和原始分卷之前大壓縮文件一致。
然后解壓文件即可。
unzip unzip ziptest.single.zipRAR
上一節我們介紹了ZIP文件的壓縮解壓以及分卷壓縮和解壓,由于RAR的分卷文件實際遇到的并不多,因此這里只設計RAR壓縮文件的壓縮和解壓。
壓縮
將多個文件壓縮為一個rar壓縮包,命令如下。
rar a myfile.rar file1 file2 …將多個同種文件壓縮為一個zip包的命令如下,如下面將所有jpg文件壓縮到一個壓縮包里。
rar a myfile.rar *.jpg解壓
將rar壓縮文件解壓到當前目錄。
unrar e myfile.rar將rar文件解壓到指定目錄。
unrar x test.rar /tmp總結
本文主要介紹了Linux系統上常見的ZIP和RAR格式的壓縮和解壓操作,包括分卷壓縮和分卷解壓。最后,如果讀到了這里并且我的文章對你有所幫助,歡迎一鍵三連,你的支持是我不懈創作的動力。
總結
以上是生活随笔為你收集整理的Linux压缩那些事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TIS教程04-客户端
- 下一篇: PyCharm编写shell脚本无法运行