Linux下將檔案打包 壓縮並分割成指定大小

2021-07-24 13:39:03 字數 3019 閱讀 1459

將大檔案或目錄打包、 壓縮並分割成制定大小的檔案,在linux下可以通過組合使用tar,bzip2(或者gzip),split命令來實現。

命令格試 tar zcvf - [ file_directory ] |sqlit -b [ file_size ][ m,k ] - [ file.tar.gz ]

將file目錄的檔案壓縮並分割成每個大小為4g檔案

shell > tar zcvf - file_name |split -b 4096m - file_name.tar.gz

shell > ls

-rw-r--r-- 1 root root 4294967296 mar  9 10:40 file_name.tar.gzaa

-rw-r--r-- 1 root root 4294967296 mar  9 10:48 file_name.tar.gzab

-rw-r--r-- 1 root root 2282762240 mar  9 10:52 file_name.tar.gzac

cat file_name.tar.gza* |tar zxv

解釋:用cat來讀所有的壓縮包,利用tar來進行解壓

1、普通tar壓縮命令

tar -zcvf cm-11.tar.gz cm-11

//將cm-11資料夾壓縮成cm-11.tar.gz

2、壓縮後的檔案太大,需要將cm-11.tar.gz分割成n個指定大小的檔案,怎麼辦?一條命令搞定

split -b 4000m -d -a 1 cm-11.tar.gz cm-11.tar.gz.

//使用split命令,-b4000m 表示設定每個分割包的大小,單位還是可以k

//-d "引數指定生成的分割包字尾為數字的形式

//-a x來設定序列的長度(預設值是2),這裡設定序列的長度為1

執行命令後,生成壓縮包如下:

-rw-r--r--  1 root     root      4194304000 may 20 14:00 cm-11.tar.gz.0

-rw-r--r--  1 root     root      4194304000 may 20 14:02 cm-11.tar.gz.1

-rw-r--r--  1 root     root      4194304000 may 20 14:03 cm-11.tar.gz.2

-rw-r--r--  1 root     root      4194304000 may 20 14:05 cm-11.tar.gz.3

-rw-r--r--  1 root     root      4194304000 may 20 14:06 cm-11.tar.gz.4

-rw-r--r--  1 root     root      4194304000 may 20 14:08 cm-11.tar.gz.5

-rw-r--r--  1 root     root      4194304000 may 20 14:09 cm-11.tar.gz.6

-rw-r--r--  1 root     root      2256379886 may 20 14:10 cm-11.tar.gz.7

3、其實以上兩步也可以合併成一步來執行

tar -zcvf cm-11.tar.gz cm-11 | split -b 4000m -d -a 1 - cm-11.tar.gz.

//採用管道,其中 - 引數表示將所建立的檔案輸出到標準輸出上

4、普通解壓命令

tar -zxvf cm-11.tar.gz

5、分割後的壓縮包解壓命令如下

cat cm-11.tar.gz.* | tar -zxv

6、附上tar命令的引數解釋

tar可以用來壓縮打包單檔案、多個檔案、單個目錄、多個目錄。

linux打包命令 tar

tar命令可以用來壓縮打包單檔案、多個檔案、單個目錄、多個目錄。

常用格式:

單個檔案壓縮打包 tar -czvf my.tar.gz file1

多個檔案壓縮打包 tar -czvf my.tar.gz file1 file2,...(file*)(也可以給file*檔案mv 目錄在壓縮)

單個目錄壓縮打包 tar -czvf my.tar.gz dir1

多個目錄壓縮打包 tar -czvf my.tar.gz dir1 dir2

解包至當前目錄:tar -xzvf my.tar.gz

cpio

含子目錄find x* | cpio -o > /y/z.cpio

不含子目錄ls x* | cpio -o > /y/z.cpio

解包: cpio -i < /y/z.cpio

[root@linux ~]# tar [-cxtzjvfppn] 檔案與目錄 ....

引數:-c :建立乙個壓縮檔案的引數指令(create 的意思);

-x :解開乙個壓縮檔案的引數指令!

-t :檢視 tarfile 裡面的檔案!

特別注意,在引數的下達中, c/x/t 僅能存在乙個!不可同時存在!

因為不可能同時壓縮與解壓縮。

-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?

-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?

-v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!

-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加引數!

例如使用『 tar -zcvfp tfile sfile』就是錯誤的寫法,要寫成

『 tar -zcvpf tfile sfile』才對喔!

-p :使用原檔案的原來屬性(屬性不會依據使用者而變)

-p :可以使用絕對路徑來壓縮!

-n :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!

--exclude file:在壓縮的過程中,不要將 file 打包!

Linux下將檔案打包 壓縮並分割成指定大小

將大檔案或目錄打包 壓縮並分割成制定大小的檔案,在linux下可以通過組合使用tar,bzip2 或者gzip split命令來實現。命令格試 tar zcvf file directory sqlit b file size m,k file.tar.gz 將file目錄的檔案壓縮並分割成每個大小...

Linux下將檔案打包 壓縮並分割成指定大小

linux解壓檔案時遇到的問題,不知道總的資料是分了好多份,需要輸入命令統一解壓 1 普通tar壓縮命令 tar zcvf cm 11.tar.gz cm 11 將cm 11資料夾壓縮成cm 11.tar.gz 2 壓縮後的檔案太大,需要將cm 11.tar.gz分割成n個指定大小的檔案,怎麼辦?一...

Linux下各種檔案打包壓縮命令

01 tar格式 解包 tar xvf filename.tar 打包 tar cvf filename.tar dirname 注 tar是打包,不是壓縮!02 gz格式 解壓1 gunzip filename.gz 解壓2 gzip d filename.gz 壓 縮 gzip filename...