壓縮和解壓縮工具
概論
在使用操作系統時,我們常會遇到大文件,會使我們很頭疼.在面對時間和空間上的選擇,只能選擇空間,這就要用到壓縮工具和歸檔工具,下面為大家一一介紹.
壓縮文件只壓縮文本格式的文件,通常不壓縮已經是壓縮的文件.
壓縮文件就會涉及到壓縮比:
原理:通過了解文本文件的數據形式,運用壓縮算法,
目的:時間換空間
工具:
壓縮:
compress/uncompress 結尾:.z
gzip/gunzip 結尾: .gz
bzip2/bunzip2 結尾: .bz2
xz/unxz 結尾: .xz
歸檔:
zip/unzip
tar,cplo
壓縮工具詳解
1.gzip/gunzip工具/zcat
特點:壓縮后,刪除原文件
格式:
gzip [ -acdfhlLnNrtvV19 ] [-S 后綴] [ 文件名 … ]
gunzip [ -acfhlLnNrtvV ] [-S 后綴] [ 文件名 … ]
zcat [ -fhLV ] [ 文件名 … ] 查看gzip文件
選項:
-d:–decompress 解壓縮,相當于gunzip
-#:指定壓縮比,默認是6 數字越大,壓縮比越大,建議不修改默認值,除非有特定需求
-c:將壓縮結果輸出至標準輸出,原文件保留;
使用格式:gzip -c FILE > /PATH/TO/SOMEFILE.gz
[root@wen-7 ~]# gzip vimrc [root@wen-7 ~]# ll 總用量 27064 -rw-r--r-- 1 root root 230 8月 17 09:18 vimrc.gz [root@wen-7 ~]# gzip -d vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc [root@wen-7 ~]# gzip -7 vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 230 8月 17 09:18 vimrc.gz [root@wen-7 ~]# gzip -c vimrc > /tmp/vim.gz [root@wen-7 ~]# ll /tmp -rw-r--r-- 1 root root 230 8月 18 09:07 vim.gz
2.bzip2/bunzip2/bcat
bzip2, bunzip2 – 一種塊排序文件壓縮軟件,v0.9.5
bzcat – 將文件解壓縮至標準輸出
bzip2recover – 恢復損壞的 bzip2 文件
格式:
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames … ]
bunzip2 [ -fkvsVL ] [ filenames … ]
bzcat [ -s ] [ filenames … ]
bzip2recover filename
選項:
-d:解壓縮
-#:指定壓縮比,默認是6 數字越大,壓縮比越大,建議不修改默認值,除非有特定需求
-k –keep:保留原文件
[root@wen-7 ~]# bzip2 vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2 [root@wen-7 ~]# bzip2 -d vimrc.bz2 [root@wen-7 ~]# ll -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc [root@wen-7 ~]# bzip2 -7 vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2 [root@wen-7 ~]# bzip2 -d vimrc.bz2 [root@wen-7 ~]# bzip2 -7 -k vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2
3.xz/unxz/xzcat ( 壓縮效果最好的壓縮工具 )
unxz is equivalent to xz –decompress.
xzcat is equivalent to xz –decompress –stdout.
lzma is equivalent to xz –format=lzma.
unlzma is equivalent to xz –format=lzma –decompress.
lzcat is equivalent to xz –format=lzma –decompress –stdout.
格式:
xz [option]… [file]…
選項:
-d:解壓縮
-#:指定壓縮比,默認是6 數字越大,壓縮比越大,建議不修改默認值,除非有特定需求
-k –keep:保留原文件
[root@wen-7 ~]# xz vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 268 8月 17 09:18 vimrc.xz [root@wen-7 ~]# xz -d vimrc.xz [root@wen-7 ~]# xz -7 vimrc [root@wen-7 ~]# xz -d vimrc.xz [root@wen-7 ~]# xz -7 -k vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2 -rw-r--r-- 1 root root 268 8月 17 09:18 vimrc.xz
4.zip:最通用的壓縮工具
特點:壓縮比有限,zip既能歸檔,又能壓縮
zip/unzip
后綴名: .zip
格式:
zip filename.zip file..
[root@wen-7 ~]# zip vim.zip vimrc adding: vimrc (deflated 53%) [root@wen-7 ~]# ll -rw-r--r-- 1 root root 366 8月 18 09:17 vim.zip
歸檔工具詳解
剛才介紹的是壓縮文具,但壓縮工具只能壓縮文件,不支持壓縮目錄.linux而言,要想對目錄進行壓縮,不對目錄里的文件單獨壓縮,要先對目錄進行歸檔操作,下面為大家介紹歸檔工具:
歸檔工具主要有兩個: tar cplo
1.tar – tar 檔案文件管理程序的 GNU 版本。
格式:
tar [option] …FIle..
選項:
-v: 顯示詳細信息,可于任何選項一起使用
-c: 創建歸檔
配合 -f /PATH/TO/SOMEFILE.tar file…
[root@wen-7 ~]# tar -cvf /tmp/vim.tar vimrc -rw-r--r-- 1 root root 10240 8月 18 09:28 vim.tar-x:展開歸檔
配合 -f /PATH/TO/SOMEFILE.tar
默認展開到當期路徑下,使用 -C /PATH/TO/SOMEDIR 到指定路徑下
[root@wen-7 ~]# tar xvf /tmp/vim.tar -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc [root@wen-7 ~]# tar xvfC /tmp/vim.tar /mnt vimrc [root@wen-7 ~]# ll /mnt 總用量 4 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc
-t:查看歸檔文件的文件列表
配合-f /PATH/TO/SOMEFILE.tar
[root@wen-7 ~]# tar -tvf /tmp/vim.tar -rw-r--r-- root/root 434 2016-08-17 09:18 vimrc
擴展:
文件或目錄tar歸檔后,還可以執行壓縮功能,配合壓縮工具,就能實現多個文件或目錄
歸檔并壓縮 :
-z : gzip2
-zcf /PATH/TO/SOMEFILE.tar.gz file…. 創建歸檔并壓縮
-zxf /PATH/TO/SOMEFILE.tar.g 解壓縮并展開歸檔
[root@wen-7 tmp]# tar -zcvf /tmp/vim.tar.gz /tmp/vim.tar -rw-r--r-- 1 root root 360 8月 18 09:47 vim.tar.gz [root@wen-7 tmp]# tar -zxvf /tmp/vim.tar.gz [root@wen-7 tmp]# ll 總用量 8 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 312 8月 18 09:52 vim.tar.gz
-J: bzip2
-jcf 歸檔并壓縮
-jxf 解壓縮并展開歸檔
[root@wen-7 ~]# tar Jcf /tmp/vim.tar.bzip2 vimrc [root@wen-7 ~]# ll /tmp 總用量 12 drwx------ 2 pcp pcp 39 8月 18 09:55 pcp.7z8yRiYHw -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 360 8月 18 09:55 vim.tar.bzip2 -rw-r--r-- 1 root root 360 8月 18 09:54 vim.tar.gz [root@wen-7 ~]# tar Jxf /tmp/vim.tar.bzip2 [root@wen-7 ~]# ll /tmp 總用量 12 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 360 8月 18 09:55 vim.tar.bzip2 -rw-r--r-- 1 root root 360 8月 18 09:54 vim.tar.gz-j: xz
-jcf 歸檔并壓縮
-jxf 解壓縮并展開歸檔
[root@wen-7 ~]# tar jcf /tmp/vim.tar.xz vimrc [root@wen-7 ~]# ll /tmp 總用量 16 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 360 8月 18 09:55 vim.tar.bzip2 -rw-r--r-- 1 root root 360 8月 18 09:54 vim.tar.gz -rw-r--r-- 1 root root 333 8月 18 09:57 vim.tar.xz [root@wen-7 ~]# tar jxf /tmp/vim.tar.xz vimrc [root@wen-7 ~]# ll /tmp 總用量 16 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc
實戰: 下載redls-3.0.2.tar.gz https://www.redis.iso
1.展開至tmp目錄,重新創建壓縮為xz格式
[root@wen-7 ~]# tar xvzf redls-3.0.2.tar.gz [root@wen-7 ~]# tar -jcf redls-3.0.2.tar.xz sh/ -rw-r--r-- 1 root root 4739 8月 14 11:05 sdfaf.tar.gz -rw-r--r-- 1 root root 4407 8月 14 11:14 sdfaf.tar.xz
2.cpio 復制從或到文件 (打包歸檔)
cpio,命令是通過重定向的方式將文件進行打包備份,還原恢復的工具,他可以解壓以".cpio"或者".tar"結尾的文件
格式:
coip [選項] > 文件名或設備名
coip [選項] < 文件名或設備名
選項:
-o 將文件拷貝打包成文件或者將文件輸出到設備上
-i 解包,將打包文件解壓或將設備上的備份還原到系統-
t 預覽,查看文件內容或者輸出到設備上的文件內容
-v 顯示打包過程中的文件名稱。
-d 解包生成目錄,在cpio還原時,自動的建立目錄
-c 一種較新的存儲方式
實戰演練:
1. 將/etc/備份
[root@wen-7 ~]# find /etc -print| cpio -ov > etc.cpio /etc/smartmontools/smartd_warning.sh 54092 塊 [root@wen-7 ~]# ll 總用量 27064 -rw-r--r-- 1 root root 27695104 8月 17 22:56 etc.cpio
2. 內容預覽
-rwxr-xr-x 1root root 5767 Jun 10 2014 /etc/smartmontools/smartd_warning.sh 54092 塊 [root@wen-7 ~]# cpio -tv < etc.cpio
3. 要解包文件
cpio: 未創建 /etc/smartmontools/smartd_warning.sh:已有更新或同樣新的版本存在 /etc/smartmontools/smartd_warning.sh 54092 塊 [root@wen-7 ~]# cpio -iv <etc.cpio /etc/smartmontools/smartd_warning.sh 54092 塊 [root@wen-7 ~]# cpio -idv <etc.cpio
原創文章,作者:wencx,如若轉載,請注明出處:http://www.www58058.com/37120