linux壓縮指令:1、tar指令,附加一個「z」壓縮選項即可,語法「tar -z 壓縮套件來源檔案或目錄」;2、zip指令,可建立一個壓縮文件,與此同時保留原始檔案的完整性,語法「zip [選項] 壓縮套件名稱來源檔案或來源目錄清單」;3、gzip指令,語法「gzip [選項] 原始檔案」;4、bzip2指令,文法「bzip2 [選項] 原始檔」;5、xz指令,語法「xz 壓縮包名」。
本教學操作環境:linux7.3系統、Dell G3電腦。
linux中壓縮是什麼
壓縮是指利用演算法將檔案處理,已達到保留最大檔案訊息,而讓檔案體積變小的目的。其基本原理為,透過尋找文件內的重複字節,建立一個相同位元組的字典文件,並以一個代碼表示。
壓縮和歸檔檔案類似,壓縮檔案也是一個檔案和目錄的集合,而這個集合也被儲存在一個檔案中,但它們的不同之處在於,壓縮檔案採用了不同的儲存方式,使其所佔用的磁碟空間比集合中所有檔案大小的總和要小。
由於電腦處理的資訊是以二進位的形式表示的,因此,壓縮軟體就是把二進位資訊中相同的字串以特殊字元標記,只要透過合理的數學計算,檔案的體積就能夠被大大壓縮。把一個或多個檔案用壓縮軟體進行壓縮,形成一個檔案壓縮包,既可以節省儲存空間,有方便在網路上傳送。
對檔案進行壓縮,很可能會損壞檔案中的內容,因此,壓縮又可以分為有損壓縮和無損壓縮。無損壓縮很好理解,指的是壓縮數據必須準確無誤;有損壓縮指的是即便遺失個別的數據,對檔案也不會造成太大的影響。有損壓縮廣泛應用於動畫、聲音和圖像檔案中,典型代表就是影碟檔案格式 mpeg、音樂檔案格式 mp3 以及圖像檔案格式 jpg。
採用壓縮工具對檔案進行壓縮,產生的檔案稱為壓縮包,該檔案的體積通常只有原始檔案的一半甚至更小。要注意的是,壓縮包中的資料無法直接使用,使用前需要利用壓縮工具將檔案資料還原,此過程又稱解壓縮。
linux壓縮指令
常用的壓縮指令有很多,例如 gzip、 zip、 bzip2 。
tar壓縮指令
tar
指令不是專門的壓縮指令。它通常用於將多個檔案拉入一個單一的檔案中,以便輕鬆傳輸到另一個系統,或將檔案作為一個相關的群組進行備份。它也提供壓縮的功能,這就很有意義了,附加一個 z
壓縮選項能夠實現壓縮檔。
當使用 z
選項為 tar
指令附加壓縮過程時,tar
使用 gzip
來進行壓縮。
就像壓縮一組文件一樣,你可以使用 tar
來壓縮單一文件,儘管這種操作與直接使用 gzip
相比沒有特別的優勢。要使用tar
這樣做,只需要使用tar cfz newtarfile filename
命令來標識要壓縮的文件,就像標識一組文件一樣,像這樣:
$ tar cfz bigfile.tgz bigfile
^ ^
| |
+- 新的文件 +- 将被压缩的文件
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile
-rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz
注意,檔案的大小顯著減少了。
如果你願意,你可以使用tar.gz
副檔名,這可能會使檔案的特徵更加明顯,但是大多數的Linux 用戶將很可能會意識到與tgz
的意思是一樣的– tar
和gz
的組合來顯示檔案是壓縮的tar 檔。在壓縮完成後,你將同時得到原始檔案和壓縮檔案。
要將許多檔案收集在一起並在一個命令中壓縮出 “tar ball”,使用相同的語法,但要指定要包含的檔案為一組,而不是單一檔案。這裡有一個範例:
$ tar cfz bin.tgz bin/*
^ ^
| +-- 将被包含的文件
+ 新的文件
zip壓縮命令
#zip
指令建立一個壓縮文件,同時保留原始文件的完整性。語法就像使用 tar
一樣簡單,只是你必須記住,你的原始檔案名稱應該是命令列上的最後一個參數。
$ zip ./bigfile.zip bigfile
updating: bigfile (deflated 79%)
$ ls -l bigfile bigfile.zip
-rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile
-rw-rw-r-- 1 shs shs 21606889 Apr 16 11:19 bigfile.zip
gzip壓縮指令
#gzip
指令非常容易使用。你只需要鍵入 gzip
,緊接在後的是你想要壓縮的檔案名稱。不像上述描述的命令,gzip
將「就地」「加密」檔案。換句話說,原始文件將被“加密”文件取代。
$ gzip bigfile
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs 21606751 Apr 15 17:57 bigfile.gz
bzip2压缩命令
像使用 gzip
命令一样,bzip2
将在你选择的文件“就地”压缩,不留下原始文件。
$ bzip bigfile
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs 18115234 Apr 15 17:57 bigfile.bz2
xz压缩命令
xz
是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像先前的两个命令一样,你只需要将文件名称提供给命令。再强调一次,原始文件被就地压缩。
$ xz bigfile
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz
对于大文件来说,你可能会注意到 xz
将比其它的压缩命令花费更多的运行时间,但是压缩的结果却是非常令人赞叹的。
压缩命令对比
大多数人都听说过“大小不是一切”。所以,让我们比较一下文件大小以及一些当你计划如何压缩文件时的问题。
下面显示的统计数据都与压缩单个文件相关,在上面显示的示例中使用 bigfile
。这个文件是一个大的且相当随机的文本文件。压缩率在一定程度上取决于文件的内容。
大小减缩率
当比较时,上面显示的各种压缩命产生下面的结果。百分比表示压缩文件与原始文件的比较效果。
-rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile
------------------------------------------------------
-rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2 ~17%
-rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz ~21%
-rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz ~21%
-rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz ~13%
-rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip ~21%
xz
命令获胜,最终只有压缩文件 13% 的大小,但是所有这些压缩命令都相当显著地减少原始文件的大小。
是否替换原始文件
bzip2
、gzip
和 xz
命令都用压缩文件替换原始文件。tar
和 zip
命令不替换。
运行时间
xz
命令似乎比其它命令需要花费更多的时间来“加密”文件。对于 bigfile
来说,大概的时间是:
命令 运行时间
tar 4.9 秒
zip 5.2 秒
bzip2 22.8 秒
gzip 4.8 秒
xz 50.4 秒
解压缩文件很可能比压缩时间要短得多。
文件权限
不管你对压缩文件设置什么权限,压缩文件的权限将基于你的 umask
设置,但 bzip2
除外,它保留了原始文件的权限。
与 Windows 的兼容性
zip
命令创建的文件可以在 Windows 系统以及 Linux 和其他 Unix 系统上使用(即解压),而无需安装其他工具,无论这些工具可能是可用还是不可用的。
相关推荐:《Linux视频教程》
以上是linux壓縮指令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!