Linux FAQ : 解壓縮

更新於 發佈於 閱讀時間約 6 分鐘
參考 :
tar

常用參數

-c 打包檔案
-x 解開壓縮檔
-t 檢視壓縮檔的內容
-z 使用 gzip 壓縮
-v 顯示執行過程
-P 使用絕對路徑
-C:指定解打包或解壓縮的目錄,要注意的是這參數是大寫的C
-f 指定壓縮檔的檔案名稱。此參數的後面要接檔案名稱,因此要注意參數的順序 (通常是把 f 參數寫在最後一個,或是與其它參數分開使用)
  • 建立打包的 tar 檔 ( 不壓縮 ) :
tar -cvf 打包使用名稱.tar 來源檔案
  • 建立壓縮檔 ( 裡面會存有 tar 檔 ) :
tar -czvf 壓縮檔名稱.tgz 來源檔案
將 來源檔案 壓縮後,打包成一個名稱為 壓縮檔名稱.tgz 的檔案,
來源檔案 可以是多個檔案或目錄。如果有多個 來源檔案 時,
以空白字元分隔不同檔案名稱:
tar -czvf 檔案名稱.tgz 來源檔案1 來源檔案2 ... 來源檔案n
  • 檢視壓縮檔的內容:
tar -tzvf 壓縮檔名稱.tgz
  • 解開壓縮檔到目前的目錄:
tar -xzvf 壓縮檔名稱.tgz
  • 複製目錄:
tar -cvf - 來源目錄 | tar -xvf -
將 來源目錄 下的所有檔案及子目錄複製到目前的目錄,
這樣做的好處是可以保留原來的檔案屬性。

大量打包目錄或檔案

tar有一個好用的參數-T是一定要學會的:
有時候我們想要一次打包很多檔案,而且這些檔案是散落各地的,
此時就可以藉由此參數接上一個檔案列表,
tar就會依據這裡面的內容一個一個的去打包
tar -cvf demo.tar -T demo.list
而上面語法中的「demo.list」是可以自訂名稱的,
內容則是想要打包的檔案或者目錄,例如:
/home/demo/test
/home/demo/abc.txt
意思是執行完這個指令後,tar會打包「test」這個目錄以下
所有的檔案(包含子目錄),以及「abc.txt」這個檔案,
所以如果未來有很多不同的檔案或目錄要打包時,只要更新這個檔案就行了
指定解打包/解壓縮的目錄
範例三的解打包/解壓縮的位置預設都是在當前目錄下,
如果要指定某個目錄輸出的話,則要加入「C」這個參數,
例如下面指令就是將檔案解壓縮到「 /home/demo」的目錄下
tar -zxvf demo.tar.gz -C /home/demo
分割檔案
分割檔案 (範例:檔案分成最大 200M)
split -b 200M ubuntu.iso "ubuntu.iso.part"
像是 1 G 大小的檔案會產生 5 個 檔案 ( 原檔案不刪除 )
這樣就會占用 2 G ( 原檔案 + 分割後的檔案 )

使用 split 分割檔案

如果要將一個大檔案分割成許多個小檔案,可以使用 split 配合 -b 參數指定每個小檔案的大小,並指定輸出檔名的開頭名稱:
split -b 200M ubuntu.iso "ubuntu.iso.part"
預設的輸出檔案名稱會自動加上英文字母來區隔順序:
亦可以使用管線(pipe)結合其它的 Linux 指令,將資料直接分割後再儲存:
tar zcf - datafolder | split -b 200M - "datafolder.part"
如果想要將檔案依據大小均分為固定個數的檔案,可以使用 -n 參數,
並指定要分成擠的小檔案,
例如若要將 ubuntu.iso 這個檔案均分為 4 個小檔案,則執行:
split -n 4 ubuntu.iso "ubuntu.iso.part"
這樣每個分割出來的檔案其大小都會是相同的:

以行數分割檔案

split 除了以固定的檔案大小切割檔案之外,
對於文字檔也可以使用固定行數的方式來分割檔案,
這裡產生一個文字檔,然後將這個文字檔每三行儲存為一個小檔案:
ls -l / > mydata.txt
split -l 3 mydata.txt mydata.part
分割出來的檔案中,每個檔案都只有三行文字:
split 以固定行數分割檔案
如果要將文字檔案均分為大小相同的小檔案,但不想要把完整的行切斷,可以使用 -n l/N 參數,其中 N 是分割檔案數,例如:
ls -l / > mydata.txt
split -n l/3 mydata.txt mydata.part
這樣分割出來的檔案就不會有將一行資料切成兩行的問題:

使用 cat 合併檔案

使用 split 分割之後的檔案,可以使用 cat 來合併,例如:
cat datafolder.part* > datafolder.tar.gz
或是直接配合管線解壓縮:
cat datafolder.part* | tar zxvf -

檔名結尾

split 預設會使用兩個字母依序為分割的檔案名稱加上結尾,
我們可以使用 -a 參數來調整結尾的字母數,
若要以三個字母作為結尾,則執行:
split -a 3 -b 200M ubuntu.iso "ubuntu.iso.part"
split 以三個字母作為檔名結尾
如果想要使用數字的方式來作為檔名結尾,可以加上 -d 參數:
split -d -b 200M ubuntu.iso "ubuntu.iso.part"

輸出至標準輸出

有時候我們會想要將 split 的輸出導向至其他的程式,
這時候就可以使用 -n K/N 這種方式,其中 N 是要分割的檔案數目,
而 K 是要輸出至標準輸出的部份,例如:
ls -l / > mydata.txt
split -n l/2/3 mydata.txt
這樣會將檔案分為 3 等份,將第二份輸出至標準輸出,
而且分割資料時不會把行切斷。
為什麼會看到廣告
avatar-img
2會員
24內容數
Linux 相關 指令 與 情境 分享
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
work b的沙龍 的其他內容
垂直加總資料 參考 : https://blog.longwin.com.tw/2009/02/bash-sum-use-awk-2009/ 若數字太大,出現 E 的符號,可以用 printf 來印
Linux FAQ : 給予顯示文字色彩 參考 : https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
Linux FAQ : grep 搜尋檔案內容 grep -i 不區分大小寫 grep -v 排除條件顯示 grep -l 顯示符合的檔名 grep -n 顯示條件在第幾行 grep -q 顯示 0 , 1 ( 檢查 $? , 0 is successful ) grep -x 整行完全符合才顯示
Linux FAQ : 查看 jar 檔方式 jar 檔其實類似 zip 壓縮檔 除了可以用 zip 軟體來打開 在 Linux 可以用一些指令輔助
Linux FAQ : ls , cp , rm Argument list too long 在使用 Linux 如大量檔案 ls 查看 cp 複製 rm 清理 可能會遇到了 Argument list too long 大約 10 萬筆以上檔案 就可能會看到此訊息
垂直加總資料 參考 : https://blog.longwin.com.tw/2009/02/bash-sum-use-awk-2009/ 若數字太大,出現 E 的符號,可以用 printf 來印
Linux FAQ : 給予顯示文字色彩 參考 : https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
Linux FAQ : grep 搜尋檔案內容 grep -i 不區分大小寫 grep -v 排除條件顯示 grep -l 顯示符合的檔名 grep -n 顯示條件在第幾行 grep -q 顯示 0 , 1 ( 檢查 $? , 0 is successful ) grep -x 整行完全符合才顯示
Linux FAQ : 查看 jar 檔方式 jar 檔其實類似 zip 壓縮檔 除了可以用 zip 軟體來打開 在 Linux 可以用一些指令輔助
Linux FAQ : ls , cp , rm Argument list too long 在使用 Linux 如大量檔案 ls 查看 cp 複製 rm 清理 可能會遇到了 Argument list too long 大約 10 萬筆以上檔案 就可能會看到此訊息
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
本文將介紹一些常用的 Linux 指令,幫助新手快速上手。主要內容包括文件和目錄管理(如 ls、cd、mkdir)、檔案操作(如 cp、mv、rm)。通過這些指令的學習,使用者可以更快速地操作 Linux 系統。
※ 需要做版本備份時: git init:初始化此資料夾,由git 開始追蹤版本控制。 git add:將檔案加入到暫存區。 git commit:把暫存區的內容提交到儲存庫。 git status:查看目前所有檔案的狀態。 git log:查看過去所有commit的記錄。 ※ 需要做修
Thumbnail
題如其名,這題是在考我們知不知道 Tab 鍵在 Linux Terminal 中的作用。 所謂科技始於人性,Tab鍵的存在即是如此......
※ Git(四) 空的資料夾無法被加入 Git 進行版本控制,但這個資料夾如果又是很重要的資料夾,你會怎麼處理? 當空的目錄無法被加入 Git 進行版本控制時,有以下的做法可以解決: 在那個空目錄裡隨便放一個檔案就行了。 在這個資料夾中添加一個名為 .gitkeep 的空檔案,讓 Git 能
Thumbnail
在先前的文章中說明了Linux大致上的安裝流程,整個過程只要依照畫面的指示設定,都可以安裝成功。其中可能比較困難在於硬碟空間的分配,這對於許多新手來說也是一個難點,也是這篇所要說的重點。
Thumbnail
如果有在Windows系統中備份資料的需求,如果可以寫好一個批次檔並使用工作排程定期複製檔案到指定目錄那就太方便了,本篇文張教你使用xcopy指令實現的一個簡易的bat。
Thumbnail
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
Thumbnail
語法: grep '^<starting-character>.*<ending-character>$' <file> grep 指令可以使用特殊字元的組合: 星號 ( * )、( $ ) 和 ( ^ )來過濾搜尋的內容。在我們的範例中,要使用 grep搜尋以特定字元開頭和結尾的內容,例如
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
本文將介紹一些常用的 Linux 指令,幫助新手快速上手。主要內容包括文件和目錄管理(如 ls、cd、mkdir)、檔案操作(如 cp、mv、rm)。通過這些指令的學習,使用者可以更快速地操作 Linux 系統。
※ 需要做版本備份時: git init:初始化此資料夾,由git 開始追蹤版本控制。 git add:將檔案加入到暫存區。 git commit:把暫存區的內容提交到儲存庫。 git status:查看目前所有檔案的狀態。 git log:查看過去所有commit的記錄。 ※ 需要做修
Thumbnail
題如其名,這題是在考我們知不知道 Tab 鍵在 Linux Terminal 中的作用。 所謂科技始於人性,Tab鍵的存在即是如此......
※ Git(四) 空的資料夾無法被加入 Git 進行版本控制,但這個資料夾如果又是很重要的資料夾,你會怎麼處理? 當空的目錄無法被加入 Git 進行版本控制時,有以下的做法可以解決: 在那個空目錄裡隨便放一個檔案就行了。 在這個資料夾中添加一個名為 .gitkeep 的空檔案,讓 Git 能
Thumbnail
在先前的文章中說明了Linux大致上的安裝流程,整個過程只要依照畫面的指示設定,都可以安裝成功。其中可能比較困難在於硬碟空間的分配,這對於許多新手來說也是一個難點,也是這篇所要說的重點。
Thumbnail
如果有在Windows系統中備份資料的需求,如果可以寫好一個批次檔並使用工作排程定期複製檔案到指定目錄那就太方便了,本篇文張教你使用xcopy指令實現的一個簡易的bat。
Thumbnail
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
Thumbnail
語法: grep '^<starting-character>.*<ending-character>$' <file> grep 指令可以使用特殊字元的組合: 星號 ( * )、( $ ) 和 ( ^ )來過濾搜尋的內容。在我們的範例中,要使用 grep搜尋以特定字元開頭和結尾的內容,例如
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。