歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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