轉)tar分割包

2021-08-31 04:31:46 字數 1238 閱讀 5378

在linux下使用 tar 命令來將檔案打包並壓縮是很通常的用法了。可是linux的檔案系統對檔案大小有限制,也就是說乙個檔案最大不能超過2g,如果壓縮包的的內容很大,最後的結果就會超過2g,那麼該怎麼辦呢?又或者壓縮包希望通過光碟來進行備份,而每張光碟的容量只有700m,那麼該如何儲存呢?解決的辦法就是將最後的壓縮包按照指定大小進行分割,這就需要用到split命令了。

舉例說明:

要將目錄logs打包壓縮並分割成多個1m的檔案,可以用下面的命令:

tar cjf - logs/ |split -b 1m - logs.tar.bz2.

完成後會產生下列檔案:

這樣儲存壓縮包的目的就達到了,可是當要解壓的時候要怎麼做呢?只要執行下面的命令就可以了:

cat logs.tar.bz2.a* | tar xj

這裡對命令做一些講解。

壓縮和分割命令列中紅色部分的為命令對應的i/o檔名引數,其中-表示標準輸入或輸出。那麼結合上面的例子,tar命令表示的意思就是將logs目錄壓縮,生成的結果直接輸送到標準輸出上;而split命令表示從標準輸入獲得檔案內容進行分割,結果檔案字首為logs.tar.bz2.。二者再通過管道將各自的標準輸入輸出對接起來。

這裡再解釋一下split命令的引數含義:

-b size 指定每個檔案的大小,其單位可以為b(512位元組)、k(1k)、m(1m)

-d 使用數字而不是字母作為字尾名

-a x 指定字尾名的長度,預設為2位

這樣上面的命令就可以變化為:

tar cjf - logs/ |split -b 1m -d -a 1- logs.tar.bz2.

C 字串分割,包括分割多個字元

1 如果字串格式為 string str abc def hijkl mn string s str.split new char string s str.split eval eval 重點是split中的函式是字元型,不是字串 結果就是 s 0 abc s 1 def s 2 hijkl s ...

php分割包含中文的字串

這兩個函式都是獲取子字串,而mb substr 一般在字串中包含中文的情況下使用。其中有個很重要的區別是mb substr 按字來切分字串,不管中英文。例子如下 1 php 2 operation 中文test英文abc 3var dump strlen operation 4 price mb s...

vim 分割視窗 轉

同時顯示兩個不同的檔案,或者同時檢視乙個檔案的兩個不同的部分,甚至同步顯示兩個檔案的不同之處,都可以使用vim的分割視窗來實現。最簡單的開啟新視窗的方法就是使用命令 split,這樣,原來的視窗就會分成上下兩個部分,而游標停留在上明的視窗裡。你會發現開啟的新視窗和你原來的視窗都是顯示的同乙個檔案。可...