Linux打包與壓縮

壓縮和解壓縮

compress和uncompress

compress [options] [file]
-d 解壓縮
-c 輸出結(jié)果到標準輸出亡脸,不刪除現(xiàn)有文件
-v 顯示詳情
[root@centos8 data]# compress  log.txt
[root@centos8 data]# ll -h
total 48K
drwxr-xr-x. 2 root root   6 Dec  8 20:42 find
-rw-------. 1 root root 48K Dec  8 20:58 log.txt.Z
drwxr-xr-x. 2 root root  27 Dec  2 22:30 scripts
[root@centos8 data]# uncompress log.txt.Z 
[root@centos8 data]# ll -h
total 156K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-------. 1 root root 154K Dec  8 20:58 log.txt
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts
[root@centos8 data]# compress -c log.txt >log.txt.Z
[root@centos8 data]# ll -h
total 204K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-------. 1 root root 154K Dec  8 20:58 log.txt
-rw-r--r--. 1 root root  48K Dec  8 21:01 log.txt.Z
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts
#不刪除原文件
[root@centos8 data]# compress -c log.txt >log.txt.Z
[root@centos8 data]# ll -h
total 204K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-------. 1 root root 154K Dec  8 20:58 log.txt
-rw-r--r--. 1 root root  48K Dec  8 21:01 log.txt.Z
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts
[root@centos8 data]# compress -dc log.txt.Z > log2.txt
[root@centos8 data]# ll -h
total 360K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-r--r--. 1 root root 154K Dec  8 21:01 log2.txt
-rw-------. 1 root root 154K Dec  8 20:58 log.txt
-rw-r--r--. 1 root root  48K Dec  8 21:01 log.txt.Z
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts
#解壓縮之后預覽
[root@centos8 data]# zcat log.txt.Z 

gzip和gunzip

-k keep保留原文件(CentOS8更新)
-d 解壓縮
-c 輸出結(jié)果到標準輸出南缓,不刪除現(xiàn)有文件
-# #表示壓縮等級涧衙,9壓縮比最高
[root@centos8 data]# gzip log.txt 
[root@centos8 data]# gunzip log.txt.gz 
[root@centos8 data]# gzip -9 log.txt
[root@centos8 data]# ll -h
total 232K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-r--r--. 1 root root 154K Dec  8 21:01 log2.txt
-rw-------. 1 root root  25K Dec  8 20:58 log.txt.gz
-rw-r--r--. 1 root root  48K Dec  8 21:01 log.txt.Z
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts
[root@centos8 data]# gunzip log.txt.gz 
[root@centos8 data]# gzip -1 log.txt
[root@centos8 data]# ll -h
total 236K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-r--r--. 1 root root 154K Dec  8 21:01 log2.txt
-rw-------. 1 root root  30K Dec  8 20:58 log.txt.gz
-rw-r--r--. 1 root root  48K Dec  8 21:01 log.txt.Z
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts
#解壓縮之后預覽
[root@centos8 data]# zcat log.txt.gz
#將標準輸出壓縮到文件
[root@centos8 data]# cat messages |gzip file.gz

bzip2和bunzip2

包:bzip2

bzip2 [option] FILE
-k keep保留原文件
-d 解壓縮
-c 輸出到標準輸出抡笼,保留原文件不變
-# 壓縮比衷旅,默認9呀枢,壓縮比最高
[root@centos8 data]# bzip2 messages 
[root@centos8 data]# ll -h
total 24K
drwxr-xr-x. 2 root root   6 Dec  8 20:42 find
-rw-------. 1 root root 24K Dec  8 21:15 messages.bz2
drwxr-xr-x. 2 root root  27 Dec  2 22:30 scripts
[root@centos8 data]# bunzip2 messages.bz2 
[root@centos8 data]# ll -h
total 156K
drwxr-xr-x. 2 root root    6 Dec  8 20:42 find
-rw-------. 1 root root 154K Dec  8 21:15 messages
drwxr-xr-x. 2 root root   27 Dec  2 22:30 scripts

xz和unxz

包:xz

xz [option] FILE
-k keep保留原文件
-d 解壓縮
-c 輸出到標準輸出缕减,保留原文件不變
-# 壓縮比,默認9捞奕,壓縮比最高
[root@centos8 compress]# xz -k messages
[root@centos8 compress]# unxz -k messages.xz 
[root@centos8 compress]# ll -h
total 280K
-rw-------. 1 root root 154K Dec  8 21:15 messages
-rw-------. 1 root root  24K Dec  8 21:15 messages.bz2
-rw-------. 1 root root  25K Dec  8 21:15 messages.gz
-rw-------. 1 root root  21K Dec  8 21:15 messages.xz
-rw-------. 1 root root  48K Dec  8 21:15 messages.Z

壓縮效果(壓縮效果好牺堰,CPU消耗高,時間久)

xz > bz2 > gz > Z

[root@centos8 compress]# ll -h
total 280K
-rw-------. 1 root root 154K Dec  8 21:15 messages
-rw-------. 1 root root  24K Dec  8 21:15 messages.bz2
-rw-------. 1 root root  25K Dec  8 21:15 messages.gz
-rw-------. 1 root root  21K Dec  8 21:15 messages.xz
-rw-------. 1 root root  48K Dec  8 21:15 messages.Z

以上不能壓縮文件夾

zip和unzip

可能文件所屬信息

-r 打包文件夾

-d 解包到指定目錄

#查看安裝信息
[root@centos8 compress]# rpm -qi unzip
Name        : unzip
Version     : 6.0
Release     : 41.el8
Architecture: x86_64
Install Date: Sat 14 Nov 2020 12:20:47 AM CST
Group       : Applications/Archiving
Size        : 431562
License     : BSD
Signature   : RSA/SHA256, Tue 02 Jul 2019 09:56:13 AM CST, Key ID 05b555b38483c65d
Source RPM  : unzip-6.0-41.el8.src.rpm
Build Date  : Sat 11 May 2019 10:14:14 AM CST
Build Host  : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys <bugs@centos.org>
Vendor      : CentOS
URL         : http://www.info-zip.org/UnZip.html
Summary     : A utility for unpacking zip files
Description :
The unzip utility is used to list, test, or extract files from a zip
archive.  Zip archives are commonly found on MS-DOS systems.  The zip
utility, included in the zip package, creates zip archives.  Zip and
unzip are both compatible with archives created by PKWARE(R)'s PKZIP
for MS-DOS, but the programs' options and default behaviors do differ
in some respects.

Install the unzip package if you need to list, test or extract files from
a zip archive.
#打包時不要當前文件夾颅围,進入到文件夾之后用*
[root@centos8 compress]# zip message.zip *
  adding: messages (deflated 84%)
[root@centos8 compress]# unzip message.zip  -d /data/
#標準輸入壓縮伟葫,-表示標準輸入
[root@centos8 compress]# cat test |zip test -
cat: test: No such file or directory
  adding: - (stored 0%)
#-p管道
[root@centos8 compress]# unzip -p messages.zip > messages

打包和解包

tar: tape archive磁帶歸檔,對多個文件或者目錄打包成一個文件院促,可以壓縮筏养,保留文件屬性不丟失

-c 打包
-t 預覽
-x 解包
-f 文件名
-v 打印信息
-C 指定目錄
-z 壓縮成gz
-j 壓縮成bz2
-J 壓縮成xz
-p 保留權限(acl權限不行)
--exclude 排除文件
-T 選項指定輸入文件
-X 選項指定包含要排除的文件列表
[root@centos8 tar]# tar -cf home.tar /home 
tar: Removing leading `/' from member names
[root@centos8 tar]# tar -zcf home.tar.gz /home 
tar: Removing leading `/' from member names
[root@centos8 tar]# tar -jcf home.tar.bz2 /home 
tar: Removing leading `/' from member names
[root@centos8 tar]# tar -Jcf home.tar.xz /home 
tar: Removing leading `/' from member names
[root@centos8 tar]# ll -h
total 15M
-rw-r--r--. 1 root root   11M Dec  8 22:11 home.tar
-rw-r--r--. 1 root root  1.3M Dec  8 22:13 home.tar.bz2
-rw-r--r--. 1 root root  1.5M Dec  8 22:12 home.tar.gz
-rw-r--r--. 1 root root 1015K Dec  8 22:13 home.tar.xz
[root@centos8 tar]# tar -xf home.tar.gz -C /opt
#tar實現(xiàn)文件復制(好像更快)
[root@centos8 tar]# tar -c /data/|tar x -C /data
#指定文件列表,排除文件列表
[root@centos8 tar]# tar -czf /data/a.tgz -T /root/includefilelist -X /root/excludefilelist

split

分割一個文件為多個文件

[root@centos8 tar]# split -b 1M home.tar.gz  home_zip
[root@centos8 tar]# ll -h home_zip*
-rw-r--r--. 1 root root 1.0M Dec  8 22:41 home_zipaa
-rw-r--r--. 1 root root 466K Dec  8 22:41 home_zipab
[root@centos8 tar]# ll -h home_zip*
-rw-r--r--. 1 root root 1.0M Dec  8 22:42 home_zip00
-rw-r--r--. 1 root root 466K Dec  8 22:42 home_zip01
-rw-r--r--. 1 root root 1.0M Dec  8 22:41 home_zipaa
-rw-r--r--. 1 root root 466K Dec  8 22:41 home_zipab
[root@centos8 tar]# cat home_zipa* > home_zip
[root@centos8 tar]# ll -h home_zip
-rw-r--r--. 1 root root 1.5M Dec  8 22:44 home_zip

cpio

歷史悠久的打包和解包工具常拓,目前已經(jīng)較少使用

通過重定向的方式將文件進行打包備份渐溶,還原恢復,可以解壓.cpio和.tar的文件

cpio [選項] > 文件名或者設備名
cpio [選項] < 文件名或者設備名
-o  output模式弄抬,打包茎辐,將標準輸入傳入的文件名打包后發(fā)送到標準輸出
-i  input模式,解包掂恕,將標準輸入傳入的文件名解包到當前目錄
-t  預覽拖陆,查看標準輸入傳入的文件中包含的文件列表
-o filename 輸入到指定的歸檔文件名
-A  向已存在的歸檔文件中追加文件
-I filename 對指定的歸檔文件名解壓
-F filename 使用指定的文件名代替標準輸入或輸出
-d  解包生成目錄,在cpio還原時懊亡,自動建立目錄
-v  顯示過程中的文件名
find /etc/|cpio -ov >etc.cpio
cpio -tv < etc.cpio(注意會覆蓋原始文件)
cpio -idv < etc.cpio
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末依啰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子斋配,更是在濱河造成了極大的恐慌孔飒,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艰争,死亡現(xiàn)場離奇詭異坏瞄,居然都是意外死亡,警方通過查閱死者的電腦和手機甩卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門鸠匀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逾柿,你說我怎么就攤上這事缀棍≌耍” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵爬范,是天一觀的道長父腕。 經(jīng)常有香客問我,道長青瀑,這世上最難降的妖魔是什么璧亮? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮斥难,結(jié)果婚禮上枝嘶,老公的妹妹穿的比我還像新娘。我一直安慰自己哑诊,他們只是感情好群扶,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镀裤,像睡著了一般竞阐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淹禾,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天馁菜,我揣著相機與錄音,去河邊找鬼铃岔。 笑死,一個胖子當著我的面吹牛峭火,可吹牛的內(nèi)容都是我干的毁习。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼卖丸,長吁一口氣:“原來是場噩夢啊……” “哼纺且!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起稍浆,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤载碌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后衅枫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫁艇,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年弦撩,在試婚紗的時候發(fā)現(xiàn)自己被綠了步咪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡益楼,死狀恐怖猾漫,靈堂內(nèi)的尸體忽然破棺而出点晴,到底是詐尸還是另有隱情,我是刑警寧澤悯周,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布粒督,位于F島的核電站,受9級特大地震影響禽翼,放射性物質(zhì)發(fā)生泄漏坠陈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一捐康、第九天 我趴在偏房一處隱蔽的房頂上張望仇矾。 院中可真熱鬧,春花似錦解总、人聲如沸贮匕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刻盐。三九已至,卻和暖如春劳翰,著一層夾襖步出監(jiān)牢的瞬間敦锌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工佳簸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乙墙,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓生均,卻偏偏與公主長得像听想,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子马胧,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容