壓縮包,解壓和壓縮
格式 | 壓縮工具 |
---|---|
.zip | zip壓縮工具 |
.gz | gzip壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.bz2 | bzip2壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.tar.gz | 先使用tar命令歸檔打包,然后使用gzip壓縮 |
.tar.bz2 | 先使用tar命令歸檔打包,然后使用bzip壓縮 |
#針對壓縮包的壓縮失敗,可能是沒有安裝相關安裝包,yum安裝即可,或者可以使用yum provides進行查看
# gzip 壓縮命令
Usage: gzip [OPTION]... [FILE]...
1.gzip 只能壓縮文件,不能壓縮目錄
2.gzip 壓縮文件之后,源文件會消失
3.gzip 解壓文件后,壓縮包會消失
4.gzip 壓縮文件,后面可以跟多個文件名,但是會分別壓縮一個包
5.使用zcat可以直接查看壓縮包中文件內容
6.打包的文件在哪個路徑下,然后就把包放在源文件所在的目錄中
# 單個文件壓縮
[root@localhost ~]# gzip file1
# 多個文件壓縮
[root@localhost ~]# gzip file2 file3
# 解壓
[root@localhost ~]# gzip -d file1.gz
# 查看文件類型
[root@localhost ~]# file file1.gz
#zip 壓縮命令
Usage:zip [option] [filename] [file]...
1.zip 壓縮文件,源文件不會消失
2.zip 解壓后,如果目錄下存在和壓縮包內相同的文件名,則詢問是否覆蓋
3.zip 壓縮目錄,什么參數都不加的情況下,只能打包空目錄,如果想要打包目錄下所有內容加 -r參數
4.如果打包的是絕對路徑,那么會把絕對路徑的內容都打包進去,並且刪除/,打包,在哪個目錄下執行,就會打包到哪個目錄下
zip 行李箱 衣服...
-r:遞歸打包
-q:不輸出打包過程
# 打包單個文件
[root@localhost ~]# zip f.zip file1
# 打包多個文件
[root@localhost ~]# zip f.zip file1 file8
# 打包目錄
[root@localhost ~]# zip -r zls_dir.zip /root/zls_dir
# tar 歸檔
用法: tar [選項...] [FILE]...
c:創建新的歸檔文件(create)
x:解壓歸檔文件
f:指定包文件名(行李箱),如果是多個選項,f一定要放在最后
v:顯示過程
z:歸檔之后使用gzip壓縮
P:不刪/ ,使用絕對路徑打包
t:查看壓縮包中的壓縮項目
C:指定解壓路徑
j:
J:
h:打包軟鏈接
X:將要排除的目錄或者文件,寫到文件中,然后使用X指定該文件,即可排除
--exclude:直接寫要排除的文件或者目錄
例:
壓縮gzip文件
# gzip包的壓縮只針對文件,並且對源文件壓縮,源文件會自動消失,這里以壓縮文件為演示
[root@oldboy tmp]# echo '123456789'>123.txt
[root@oldboy tmp]# gzip 123.txt
[root@oldboy tmp]# ll
total 4
-rw-r--r-- 1 root root 38 Mar 28 22:30 123.txt.gz
解壓gzip文件
[root@oldboy tmp]# gzip -d 123.txt.gz
[root@oldboy tmp]# ll
total 4
-rw-r--r-- 1 root root 10 Mar 28 22:30 123.txt
打包並壓縮文件或者目錄為.tar.gz包
[root@oldboy /]# tar -zcf tmp.tar.gz /tmp
tar: Removing leading `/' from member names
[root@oldboy /]# du -sh tmp.tar.gz #查看當前壓縮包的大小
4.0K tmp.tar.gz
解壓tar.gz包
[root@oldboy /]# tar xf tmp.tar.gz -C /tmp #解壓文件並且指定路徑,xf命令是tar包通用
[root@oldboy /]# ll /tmp
total 4
-rw-r--r-- 1 root root 10 Mar 28 22:30 123.txt
drwxrwxrwt 7 root root 108 Mar 28 22:33 tmp
壓縮bz2包
[root@oldboy /]# tar jcf 666.tar.bz2 /tmp #更換參數j即可
tar: Removing leading `/' from member names
[root@oldboy /]# file 666.tar.bz2 #查看文件類型,
666.tar.bz2: bzip2 compressed data, block size = 900k
壓縮解壓xz包
[root@oldboy /]# tar Jcf log.tar.xz /var/log #打包xz包
[root@oldboy /]# file log.tar.xz #查看文件類型
log.tar.xz: XZ compressed data
[root@oldboy /]# tar xf log.tar.xz -C /tmp #指定解壓路徑,這個命令對於tar包是通用的都能進行解壓
[root@oldboy /]# tar tf log.tar.xz #xz包的內容同樣使用tf可以進行查看
zip包壓縮解壓
[root@oldboy /]# zip -r tmp01.zip /tmp #對目錄壓縮成zip包 -r是針對目錄,不加則是針對文件
[root@oldboy /]# unzip tmp01.zip #解壓zip包
Archive: tmp01.zip #提示,因為我解壓也是在當前目錄底下,提示是否進行覆蓋
replace tmp/123.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: