歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:對文件打包壓縮

Linux基礎教程:對文件打包壓縮

日期:2017/2/28 13:54:08   编辑:Linux教程

一、須知

  • 文件數量太多, 如果需要拷來拷去是不是很麻煩? 怎麼辦? 打包!
  • 文件太大,通過網絡下載、傳輸會不會很費時間? 怎麼辦? 壓縮!

在Linux環境中,打包壓縮文件的擴展名多是:【*.tar, *.tar.gz, *.gz, *.bz2, *.tar.xz】這些文件統稱為“tar”包, 想想為什麼會有這樣的擴展名麼? 不是說過 Linux的擴展名沒有什麼用嗎? 【不同的後綴,表明所使用的壓縮算法不同, 壓縮比從低到高的排序是: gz < bz2 < xz ; 壓縮速度則正好相反 gz > bz2 > xz】

是的。 文件擴展名對於Linux來說, 並沒有任何卵用。 然而、但是, 由於Linux支持的壓縮命令很多,而且不同指令所采用的壓縮技術不相同,當然彼此之間可能就無法互通(壓縮、解壓縮)。所以, 當我們下載到某個壓縮文件時,自然就需要知道該檔案是由哪種壓縮指令制作的,好用來對照進行解壓縮。

也就是說,雖然Linux文件的擴展名和其屬性沒有絕對關系,但是為了便於我們易於識別,所以適當的擴展名還是必要的。

打包: 實質將許多文件和目錄打包成一個文件。
壓縮:把大文件或目錄通過壓縮算法變成一個較小的文件。

大多命令僅能針對單一文件來進行壓縮,gzip與bzip2也能對目錄進行壓縮,但是結果為:將目錄內的所有文件“分別、單獨”進行壓縮操作。

一、文件的打包和壓縮
tar : 打包、壓縮一個命令全搞定。 版本稍高的 tar 命令, 選項前的 - , 是可選的。
解壓縮“tar”包非常簡單,只需要這樣:

12 $ tar xf filename
$ tar xf filename -C /tmp # 解壓到/tmp目錄

注意: filename 就是需要解壓縮"tar"包的文件名,而且使用後一種形式的時候,選項 f 一定要放到最後。
創建“tar”包
1 $ tar -cvf filename.tar FILES

指定壓縮算法: z 代表 gz, j 代表 bz2, J 代表 xz。
123 $ tar -zcvf filename.tar.gz FILES
$ tar -jcvf filename.tar.bz2 FILES
$ tar -Jcvf filename.tar.xz FILES

注意:其中FILES表示被打包盒壓縮的文件或目錄名。

僅解開單一文件的方法
1234 ## 首先 –jtvf 查看需要解壓的文件名
tar -jtvf filename.tar.bz2 # 查詢需要解壓的文件名:假設為 etc/abc。
## 解壓,指定 etc/abc 文件名
tar –jxvf filename.tar.bz2 etc/abc

記憶: 記住 tar xvf 然後 把 x 位置替換為 c , t 就行了。

  • 壓縮(選項:c):tar –jcvf filename,tar.bz2 要被壓縮的文件或目錄名稱(可多個)
  • 查詢(選項:t):tar –jtvf filename,tar.bz2
  • 解壓縮(選項:x):tar –jxvf filename.tar.bz2 –C 欲解壓縮的目錄

因為-f參數後必須緊接 “要新創建的文件名”。
tar默認情況下會把絕對路徑前的 / 去掉, 這樣在恢復的時候, 如果不用-C / 指定根目錄為其相對目錄, tar會在把解包後的目錄結構放在當前目錄。如果需要用絕對路徑解壓或者壓縮呢, 使用-P選項吧

gzip & bzip2命令
gzip 常用選項:
-c : 將壓縮輸出到 stdout,可通過重定向處理

-d : 解壓縮

-v : 詳細信息

-# : 壓縮比 1-9

bzip 同gzip的用法一樣。-k選項 保留原文件
總結:

  • gzip和bzip2 不會保留原文件,而新生成一個壓縮文件
  • 只能對單個文件壓縮

zip & unzip 命令:
# zip all.zip *.jpg #這條命令是將所有.jpg的文件壓縮成一個zip包
# unzip all.zip #解壓縮

Copyright © Linux教程網 All Rights Reserved