2021-05-12 14:32:11
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 #解壓縮
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-03/129013.htm
相關文章