首頁 >運維 >linux運維 >linux壓縮指令有哪些

linux壓縮指令有哪些

青灯夜游
青灯夜游原創
2023-03-01 18:55:2344162瀏覽

linux壓縮指令:1、tar指令,附加一個「z」壓縮選項即可,語法「tar -z 壓縮套件來源檔案或目錄」;2、zip指令,可建立一個壓縮文件,與此同時保留原始檔案的完整性,語法「zip [選項] 壓縮套件名稱來源檔案或來源目錄清單」;3、gzip指令,語法「gzip [選項] 原始檔案」;4、bzip2指令,文法「bzip2 [選項] 原始檔」;5、xz指令,語法「xz 壓縮包名」。

linux壓縮指令有哪些

本教學操作環境: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 的意思是一樣的– targz 的組合來顯示檔案是壓縮的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% 的大小,但是所有这些压缩命令都相当显著地减少原始文件的大小。

  • 是否替换原始文件

bzip2gzipxz 命令都用压缩文件替换原始文件。tarzip 命令不替换。

  • 运行时间

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn