成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Linux 上壓縮文件的 5 種方法

系統(tǒng) Linux
在 Linux 系統(tǒng)上有很多可以用于壓縮文件的工具,但它們的表現(xiàn)并不都是一樣的,也不是所有的壓縮效果都是一樣的。在這篇文章中,我們比較其中的五個工具。

[[324987]]

在 Linux 上有不少用于壓縮文件的命令。最新最有效的一個方法是 xz,但是所有的方法都有節(jié)省磁盤空間和維護備份文件供以后使用的優(yōu)點。在這篇文章中,我們將比較這些壓縮命令并指出顯著的不同。

tar

tar 命令不是專門的壓縮命令。它通常用于將多個文件拉入一個單個的文件中,以便容易地傳輸?shù)搅硪粋€系統(tǒng),或者將文件作為一個相關(guān)的組進行備份。它也提供壓縮的功能,這就很有意義了,附加一個 z 壓縮選項能夠?qū)崿F(xiàn)壓縮文件。

當使用 z 選項為 tar 命令附加壓縮過程時,tar 使用 gzip 來進行壓縮。

就像壓縮一組文件一樣,你可以使用 tar 來壓縮單個文件,盡管這種操作與直接使用 gzip 相比沒有特別的優(yōu)勢。要使用 tar 這樣做,只需要使用 tar cfz newtarfile filename 命令來標識要壓縮的文件,就像標識一組文件一樣,像這樣:

  1. $ tar cfz bigfile.tgz bigfile 
  2.             ^            ^ 
  3.             |            | 
  4.             +- 新的文件  +- 將被壓縮的文件 
  5. $ ls -l bigfile* 
  6. -rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile 
  7. -rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz 

注意,文件的大小顯著減少了。

如果你愿意,你可以使用 tar.gz 擴展名,這可能會使文件的特征更加明顯,但是大多數(shù)的 Linux 用戶將很可能會意識到與 tgz 的意思是一樣的 – tar 和 gz的組合來顯示文件是一個壓縮的 tar 文件。在壓縮完成后,你將同時得到原始文件和壓縮文件。

要將很多文件收集在一起并在一個命令中壓縮出 “tar ball”,使用相同的語法,但要指定要包含的文件為一組,而不是單個文件。這里有一個示例:

  1. $ tar cfz bin.tgz bin/* 
  2.           ^         ^ 
  3.           |         +-- 將被包含的文件 
  4.           + 新的文件 

zip

zip 命令創(chuàng)建一個壓縮文件,與此同時保留原始文件的完整性。語法像使用 tar 一樣簡單,只是你必需記住,你的原始文件名稱應(yīng)該是命令行上的最后一個參數(shù)。

  1. $ zip ./bigfile.zip bigfile 
  2. updating: bigfile (deflated 79%) 
  3. $ ls -l bigfile bigfile.zip 
  4. -rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile 
  5. -rw-rw-r-- 1 shs shs  21606889 Apr 16 11:19 bigfile.zip 

gzip

gzip 命令非常容易使用。你只需要鍵入 gzip,緊隨其后的是你想要壓縮的文件名稱。不像上述描述的命令,gzip 將“就地”加密文件。換句話說,原始文件將被加密文件替換。

  1. $ gzip bigfile 
  2. $ ls -l bigfile* 
  3. -rw-rw-r-- 1 shs shs  21606751 Apr 15 17:57 bigfile.gz 

bzip2

像使用 gzip 命令一樣,bzip2 將在你選擇的文件“就地”壓縮,不留下原始文件。

  1. $ bzip bigfile 
  2. $ ls -l bigfile* 
  3. -rw-rw-r-- 1 shs shs  18115234 Apr 15 17:57 bigfile.bz2 

xz

xz 是壓縮命令團隊中的一個相對較新的成員,在壓縮文件的能力方面,它是一個領(lǐng)跑者。像先前的兩個命令一樣,你只需要將文件名稱提供給命令。再強調(diào)一次,原始文件被就地壓縮。

  1. $ xz bigfile 
  2. $ ls -l bigfile* 
  3. -rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz 

對于大文件來說,你可能會注意到 xz 將比其它的壓縮命令花費更多的運行時間,但是壓縮的結(jié)果卻是非常令人贊嘆的。

對比

大多數(shù)人都聽說過“大小不是一切”。所以,讓我們比較一下文件大小以及一些當你計劃如何壓縮文件時的問題。

下面顯示的統(tǒng)計數(shù)據(jù)都與壓縮單個文件相關(guān),在上面顯示的示例中使用 bigfile。這個文件是一個大的且相當隨機的文本文件。壓縮率在一定程度上取決于文件的內(nèi)容。

(1) 大小減縮率

當比較時,上面顯示的各種壓縮命產(chǎn)生下面的結(jié)果。百分比表示壓縮文件與原始文件的比較效果。

  1. -rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile 
  2. ------------------------------------------------------ 
  3. -rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2    ~17% 
  4. -rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz     ~21% 
  5. -rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz    ~21% 
  6. -rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz     ~13% 
  7. -rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip    ~21% 

xz 命令獲勝,最終只有壓縮文件 13% 的大小,但是所有這些壓縮命令都相當顯著地減少原始文件的大小。

(2) 是否替換原始文件

bzip2、gzip 和 xz 命令都用壓縮文件替換原始文件。tar 和 zip 命令不替換。

(3) 運行時間

xz 命令似乎比其它命令需要花費更多的時間來加密文件。對于 bigfile 來說,大概的時間是:

  1. 命令      運行時間 
  2. tar       4.9 秒 
  3. zip       5.2 秒 
  4. bzip2    22.8 秒 
  5. gzip      4.8 秒 
  6. xz       50.4 秒 

解壓縮文件很可能比壓縮時間要短得多。

(4) 文件權(quán)限

不管你對壓縮文件設(shè)置什么權(quán)限,壓縮文件的權(quán)限將基于你的 umask 設(shè)置,但 bzip2 除外,它保留了原始文件的權(quán)限。

(5) 與 Windows 的兼容性

zip 命令創(chuàng)建的文件可以在 Windows 系統(tǒng)以及 Linux 和其他 Unix 系統(tǒng)上使用(即解壓),而無需安裝其他工具,無論這些工具可能是可用還是不可用的。

解壓縮文件

解壓文件的命令與壓縮文件的命令類似。在我們運行上述壓縮命令后,這些命令用于解壓縮 bigfile:

  • tar: tar xf bigfile.tgz
  • zip: unzip bigfile.zip
  • gzip: gunzip bigfile.gz
  • bzip2: bunzip2 bigfile.gz2
  • xz: xz -d bigfile.xz 或 unxz bigfile.xz

自己運行壓縮對比

如果你想自己運行一些測試,抓取一個大的且可以替換的文件,并使用上面顯示的每個命令來壓縮它 —— 最好使用一個新的子目錄。你可能需要先安裝 xz,如果你想在測試中包含它的話。這個腳本可能更容易地進行壓縮,但是可能需要花費幾分鐘完成。

  1. #!/bin/bash 
  2. # 詢問用戶文件名稱 
  3. echo -n "filename> " 
  4. read filename 
  5. # 你需要這個,因為一些命令將替換原始文件 
  6. cp $filename $filename-2 
  7. # 先清理(以免先前的結(jié)果仍然可用) 
  8. rm $filename.* 
  9. tar cvfz ./$filename.tgz $filename > /dev/null 
  10. zip $filename.zip $filename > /dev/null 
  11. bzip2 $filename 
  12. # 恢復(fù)原始文件 
  13. cp $filename-2 $filename 
  14. gzip $filename 
  15. # 恢復(fù)原始文件 
  16. cp $filename-2 $filename 
  17. xz $filename 
  18. # 顯示結(jié)果 
  19. ls -l $filename.* 
  20. # 替換原始文件 
  21. mv $filename-2 $filename 

 

 

責任編輯:趙寧寧 來源: Linux中國
相關(guān)推薦

2020-06-23 14:21:35

Linux系統(tǒng)功能

2009-12-16 16:11:14

Linux壓縮文件

2019-10-24 08:52:23

Linux壓縮文件歸檔

2020-02-21 13:00:50

Linuxzip命令壓縮文件

2020-12-26 14:48:21

UbuntuLinuxDeb文件

2009-10-20 15:39:20

Linux壓縮

2009-12-25 17:55:05

Linux tar

2020-05-06 09:51:37

二進制Linux命令行工具

2019-11-14 05:00:00

Linux文件磁盤空間

2022-08-19 11:17:09

Linux

2009-12-03 14:10:06

PHP壓縮文件夾

2018-09-14 16:18:26

Linux壓縮文件應(yīng)用程序

2023-05-04 18:45:11

2011-09-15 10:12:11

ubunturar

2020-01-16 10:47:36

服務(wù)器Kubernetes微服務(wù)

2012-05-10 09:43:28

2019-01-21 10:34:13

Linux運算命令

2019-12-11 11:25:48

Linux命令行郵件

2019-01-03 15:43:25

Linux內(nèi)存shell

2013-07-18 14:16:14

ZipArchive壓iOS開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 在线日韩视频 | 手机三级电影 | 亚洲精品久久久久中文字幕欢迎你 | 日日夜夜免费精品视频 | 国产男女视频 | 成人精品一区二区三区 | 性色av一区 | 国产在线一区二区三区 | 亚洲精品日韩在线观看 | h在线播放 | 欧美精品电影一区 | 午夜视频在线观看网站 | 国产日韩久久 | 国产精品久久久久久亚洲调教 | 大乳boobs巨大吃奶挤奶 | 精品福利视频一区二区三区 | 久久久久国产一区二区三区四区 | 久久美女网| 日韩欧美精品 | 久草精品在线 | 99精品国产一区二区三区 | 久久精品欧美一区二区三区不卡 | 天堂久久av | 中文字幕成人 | 日韩视频中文字幕 | 国产欧美精品区一区二区三区 | 狠狠涩| 在线视频成人 | 影音先锋欧美资源 | 少妇一区在线观看 | 国产天天操 | 日日草夜夜草 | 一区二区三区四区视频 | 野狼在线社区2017入口 | 完全免费在线视频 | 欧美日韩中| 天天躁日日躁狠狠的躁天龙影院 | 成人午夜视频在线观看 | 国产免费观看一区 | 成人午夜免费视频 | 蜜桃在线视频 |