自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Linux系統(tǒng)中使用文件壓縮

系統(tǒng) Linux
Linux 系統(tǒng)為文件壓縮提供了許多選擇,關(guān)鍵是選擇一個最適合你的。如果你對可用于 Linux 系統(tǒng)的文件壓縮命令或選項(xiàng)有任何疑問,你也許應(yīng)該看一下 apropos compress 這個命令的輸出。如果你有機(jī)會這么做,你會驚異于有如此多的的命令來進(jìn)行壓縮文件和解壓縮文件。

[[216435]]

Linux 系統(tǒng)為文件壓縮提供了許多選擇,關(guān)鍵是選擇一個最適合你的。

如果你對可用于 Linux 系統(tǒng)的文件壓縮命令或選項(xiàng)有任何疑問,你也許應(yīng)該看一下 apropos compress 這個命令的輸出。如果你有機(jī)會這么做,你會驚異于有如此多的的命令來進(jìn)行壓縮文件和解壓縮文件;此外還有許多命令來進(jìn)行壓縮文件的比較、檢驗(yàn),并且能夠在壓縮文件中的內(nèi)容中進(jìn)行搜索,甚至能夠把壓縮文件從一個格式變成另外一種格式(如,將 .z 格式變?yōu)?.gz 格式 )。

你可以看到只是適用于 bzip2 壓縮的全部條目就有這么多。加上 zip、gzip 和 xz 在內(nèi),你會有非常多的選擇。

  1. $ apropos compress | grep ^bz
  2. bzcat (1) - decompresses files to stdout
  3. bzcmp (1) - compare bzip2 compressed files
  4. bzdiff (1) - compare bzip2 compressed files
  5. bzegrep (1) - search possibly bzip2 compressed files for a regular expression
  6. bzexe (1) - compress executable files in place
  7. bzfgrep (1) - search possibly bzip2 compressed files for a regular expression
  8. bzgrep (1) - search possibly bzip2 compressed files for a regular expression
  9. bzip2 (1) - a block-sorting file compressor, v1.0.6
  10. bzless (1) - file perusal filter for crt viewing of bzip2 compressed text
  11. bzmore (1) - file perusal filter for crt viewing of bzip2 compressed text

在我的 Ubuntu 系統(tǒng)上 ,apropos compress 命令的返回中列出了 60 條以上的命令。 

壓縮算法

壓縮并沒有普適的方案,某些壓縮工具是有損壓縮,例如一些壓縮用于減少 mp3 文件大小,而能夠使聆聽者有接近原聲的音樂感受。但是在 Linux 命令行上壓縮或歸檔用戶文件所使用的算法必須能夠精確地重新恢復(fù)為原始數(shù)據(jù)。換句話說,它們必須是無損的。

這是如何做到的?讓我們假設(shè)在一行上有 300 個相同的字符可以被壓縮成像 “300x” 這樣的字符串,但是這種算法對大多數(shù)文件沒有很大的用處,因?yàn)槲募胁豢赡馨L的相同字符序列比完全隨機(jī)的序列更多。 壓縮算法要復(fù)雜得多,從 Unix 早期壓縮***被引入以來,它就越來越復(fù)雜了。 

在 Linux 系統(tǒng)上的壓縮命令

在 Linux 系統(tǒng)上最常用的文件壓縮命令包括 zipgzip、bzip2、xz。 所有這些壓縮命令都以類似的方式工作,但是你需要權(quán)衡有多少文件要壓縮(節(jié)省多少空間)、壓縮花費(fèi)的時間、壓縮文件在其他你需要使用的系統(tǒng)上的兼容性。

有時壓縮一個文件并不會花費(fèi)很多時間和精力。在下面的例子中,被壓縮的文件實(shí)際上比原始文件要大。這并不是一個常見情況,但是有可能發(fā)生——尤其是在文件內(nèi)容達(dá)到一定程度的隨機(jī)性。

  1. $ time zip bigfile.zip bigfile
  2. adding: bigfile (default 0% )
  3. real 0m0.055s
  4. user 0m0.000s
  5. sys 0m0.016s
  6. $ ls -l bigfile*
  7. -rw-r--r-- 1 root root 0 12 20 22:36 bigfile
  8. -rw------- 1 root root 164 12 20 22:41 bigfile.zip

注意該文件壓縮后的版本(bigfile.zip)比原始文件(bigfile)要大。如果壓縮增加了文件的大小或者減少很少的比例,也許唯一的好處就是便于在線備份。如果你在壓縮文件后看到了下面的信息,你不會從壓縮中得到什么受益。

  1. ( defalted 1% )

文件內(nèi)容在文件壓縮的過程中有很重要的作用。在上面文件大小增加的例子中是因?yàn)槲募?nèi)容過于隨機(jī)。壓縮一個文件內(nèi)容只包含 0 的文件,你會有一個相當(dāng)震驚的壓縮比。在如此極端的情況下,三個常用的壓縮工具都有非常棒的效果。

  1. -rw-rw-r-- 1 shs shs 10485760 Dec 8 12:31 zeroes.txt
  2. -rw-rw-r-- 1 shs shs 49 Dec 8 17:28 zeroes.txt.bz2
  3. -rw-rw-r-- 1 shs shs 10219 Dec 8 17:28 zeroes.txt.gz
  4. -rw-rw-r-- 1 shs shs 1660 Dec 8 12:31 zeroes.txt.xz
  5. -rw-rw-r-- 1 shs shs 10360 Dec 8 12:24 zeroes.zip

令人印象深刻的是,你不太可能看到超過 1000 萬字節(jié)而壓縮到少于 50 字節(jié)的文件, 因?yàn)榛旧喜豢赡苡羞@樣的文件。

在更真實(shí)的情況下 ,大小差異總體上是不同的,但是差別并不顯著,比如對于確實(shí)不太大的 jpg 圖片文件來說。

  1. -rw-r--r-- 1 shs shs 13522 Dec 11 18:58 image.jpg
  2. -rw-r--r-- 1 shs shs 13875 Dec 11 18:58 image.jpg.bz2
  3. -rw-r--r-- 1 shs shs 13441 Dec 11 18:58 image.jpg.gz
  4. -rw-r--r-- 1 shs shs 13508 Dec 11 18:58 image.jpg.xz
  5. -rw-r--r-- 1 shs shs 13581 Dec 11 18:58 image.jpg.zip

在對大的文本文件同樣進(jìn)行壓縮時 ,你會看到顯著的不同。

  1. $ ls -l textfile*
  2. -rw-rw-r-- 1 shs shs 8740836 Dec 11 18:41 textfile
  3. -rw-rw-r-- 1 shs shs 1519807 Dec 11 18:41 textfile.bz2
  4. -rw-rw-r-- 1 shs shs 1977669 Dec 11 18:41 textfile.gz
  5. -rw-rw-r-- 1 shs shs 1024700 Dec 11 18:41 textfile.xz
  6. -rw-rw-r-- 1 shs shs 1977808 Dec 11 18:41 textfile.zip

在這種情況下 ,xz 相較于其他壓縮命令有效的減小了文件大小,對于第二的 bzip2 命令也是如此。 

查看壓縮文件

這些以 more 結(jié)尾的命令(bzmore 等等)能夠讓你查看壓縮文件的內(nèi)容而不需要解壓文件。

  1. bzmore (1) - file perusal filter for crt viewing of bzip2 compressed text
  2. lzmore (1) - view xz or lzma compressed (text) files
  3. xzmore (1) - view xz or lzma compressed (text) files
  4. zmore (1) - file perusal filter for crt viewing of compressed text

為了解壓縮文件內(nèi)容顯示給你,這些命令做了大量的計算。但在另一方面,它們不會把解壓縮后的文件留在你系統(tǒng)上,它們只是即時解壓需要的部分。

  1. $ xzmore textfile.xz | head -1
  2. Here is the agenda for tomorrow's staff meeting:  

比較壓縮文件

有幾個壓縮工具箱包含一個差異命令(例如 :xzdiff),那些工具會把這些工作交給 cmpdiff 來進(jìn)行比較,而不是做特定算法的比較。例如,xzdiff 命令比較 bz2 類型的文件和比較 xz 類型的文件一樣簡單 。 

如何選擇***的 Linux 壓縮工具

如何選擇壓縮工具取決于你工作。在一些情況下,選擇取決于你所壓縮的數(shù)據(jù)內(nèi)容。在更多的情況下,取決你組織內(nèi)的慣例,除非你對磁盤空間有著很高的敏感度。下面是一般性建議:

zip 對于需要分享給或者在 Windows 系統(tǒng)下使用的文件最適合。

gzip 或許對你要在 Unix/Linux 系統(tǒng)下使用的文件是***的。雖然 bzip2 已經(jīng)接近普及,但 gzip 看起來仍將長期存在。

bzip2 使用了和 gzip 不同的算法,并且會產(chǎn)生比 gzip 更小的文件,但是它們需要花費(fèi)更長的時間進(jìn)行壓縮。

xz 通常可以提供***的壓縮率,但是也會花費(fèi)相當(dāng)長的時間。它比其他工具更新一些,可能在你工作的系統(tǒng)上還不存在。 

注意

在壓縮文件時,你有很多選擇,而在極少的情況下,并不能有效節(jié)省磁盤存儲空間。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2018-10-09 08:30:55

UbuntuLinuxRAR文件

2019-09-16 19:00:48

Linux變量

2022-10-25 09:07:28

Linuxxargs命令

2018-04-28 09:12:42

Linux

2022-05-25 08:41:48

Linuxfd 命令文件

2022-12-25 10:09:44

2022-07-02 15:06:06

Pandoc文件Markdown

2018-05-16 10:32:06

Linux命令find

2018-06-26 09:15:24

Linux命令history

2022-11-18 10:16:26

Linuxwc 命令

2022-11-07 12:52:25

Linuxfsck命令

2018-09-14 16:18:26

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

2023-09-14 15:05:33

grep正則表達(dá)式

2021-06-03 09:02:10

Linuxfind文件

2021-01-13 09:40:26

Linuxexport命令

2011-08-10 09:31:41

Hibernateunion

2021-03-09 07:27:40

Kafka開源分布式

2015-08-27 09:46:09

swiftAFNetworkin

2021-06-09 09:36:18

DjangoElasticSearLinux

2022-05-17 08:25:10

TypeScript接口前端
點(diǎn)贊
收藏

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