linux下c使用lzma lzma檔案及命令簡介

2021-10-13 08:39:36 字數 1415 閱讀 9460

lzma  (lempel-ziv-markov  chain-algorithm)  基於著名的lz77壓縮演算法改進的壓縮/解壓工具,特點:高壓縮率,高解壓速度,低記憶體消耗,lzma命令列工具使用方式和gzip,bzip2類似,對 已經熟悉gzip,bzip2這類工具的使用者來說,上手並不難。

對比兩大主流壓縮工具:gzip,bzip2:

1,lzma和bzip2在速度上面遠遠輸給gzip,但在壓縮率方面,lzma演算法佔優勢。

2,lzma擁有比gzip,bzip2更高的壓縮比率,壓縮後檔案更小,純文字檔案壓縮更加明顯,在解壓方面比bzip2速度快出數倍,對於想要有較高的壓縮率,又不想消耗太多記憶體,lzma是首先。

3,檔案屬性,lzma壓縮和解壓縮能保持檔案所有人,許可權和修改時間等資訊,但是gzip不儲存這些資訊。

速度:    bzip2 < lzma < gzip

壓縮率: gzip   < bzip2 < lzma

檔案資訊:gzip 不保留, bzip2 , lzma 保留

這麼看來,好像沒有太多理由再用 bzip2 了?呵呵,不過bzip2仍是我的最愛,目前還沒有辦法一下子接受lzma,

雖然lzma很優秀,但我已經習慣了 tar cjvf 和 tar xjvf 了!

lzma在絕大多數linux和unix系統中預設安裝。

幾個主要引數:

-d --decompress --uncompress

指定解壓縮,比如 lzma  -d test.lzma,該命令相當於 unlzma test.lzma

-f --force

強制解壓/壓縮,忽略一切問題,比如:目標檔案已經存在,直接覆蓋等。

-h --help

顯示幫助

-k --keep

不刪除原始檔案,

-t --test

測試,不解壓

-v --verbose

顯示進度等資訊,

-z --compress

強制壓縮

用法示例:

壓縮檔案:

lzma  test.tar

壓縮後生成:lzma.tar.lzma 並且原檔案 test.tar會被刪除,要想保留,新增 -k 選項

lzma -k test.tar

解壓:lzma -d test.tar.lzma 或 unlzma test.tar.lzma

解壓後 test.tar.lzma預設被刪除,如果想保留,新增-k選項,

如果目標檔案已經存在,lzma不會覆蓋,而報錯退出執行,

新增 -f忽略:

lzma -kf test.tar

覆蓋已經存在的 lzma.tar.lzma 同時保留原檔案 test.tar

解壓:lzma -dkf test.tar.lzma

覆蓋已經存在的 test.tar 同時保留 test.tar.lzma

linux下使用c 操作mysql

關於mysql的基礎知識可以參考 mysql基礎 首先,需要確保已安裝mysql server,mysql client,mysql devel。1.mysql 用於定義乙個mysql物件,便於後續操作確定要操作的資料庫是哪乙個。mysql mysql mysql標記對應某個資料庫2.mysql r...

Linux 環境下使用g 編譯C

下面是乙個儲存在檔案 helloworld.cpp 中乙個簡單的 c 程式的 helloworld.cpp include int main int argc,char argv 程式使用定義在標頭檔案 iostream 中的 cout,向標準輸出寫入乙個簡單的字串。該 可用以下命令編譯為可執行檔案...

Linux下 使用C語言編寫who命令

在linux 下 who命令是查詢當前登入的每個使用者。who的預設輸出包括使用者名稱 終端型別 登入日期及遠端主機。如圖 我們man一下who,在聯機幫助裡可以看到,who命令是讀取 var run utmp檔案來得到以上資訊的。我們在man一下utmp,知道utmp這個檔案,是二進位制檔案,裡面...