壓縮和解壓縮
compress和uncompress
compress [options] [file]
-d 解壓縮
-c 輸出結(jié)果到標準輸出亡脸,不刪除現(xiàn)有文件
-v 顯示詳情
[root@centos8 data]# compress log.txt
[root@centos8 data]# ll -h
total 48K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-------. 1 root root 48K Dec 8 20:58 log.txt.Z
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
[root@centos8 data]# uncompress log.txt.Z
[root@centos8 data]# ll -h
total 156K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-------. 1 root root 154K Dec 8 20:58 log.txt
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
[root@centos8 data]# compress -c log.txt >log.txt.Z
[root@centos8 data]# ll -h
total 204K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-------. 1 root root 154K Dec 8 20:58 log.txt
-rw-r--r--. 1 root root 48K Dec 8 21:01 log.txt.Z
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
#不刪除原文件
[root@centos8 data]# compress -c log.txt >log.txt.Z
[root@centos8 data]# ll -h
total 204K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-------. 1 root root 154K Dec 8 20:58 log.txt
-rw-r--r--. 1 root root 48K Dec 8 21:01 log.txt.Z
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
[root@centos8 data]# compress -dc log.txt.Z > log2.txt
[root@centos8 data]# ll -h
total 360K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-r--r--. 1 root root 154K Dec 8 21:01 log2.txt
-rw-------. 1 root root 154K Dec 8 20:58 log.txt
-rw-r--r--. 1 root root 48K Dec 8 21:01 log.txt.Z
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
#解壓縮之后預覽
[root@centos8 data]# zcat log.txt.Z
gzip和gunzip
-k keep保留原文件(CentOS8更新)
-d 解壓縮
-c 輸出結(jié)果到標準輸出南缓,不刪除現(xiàn)有文件
-# #表示壓縮等級涧衙,9壓縮比最高
[root@centos8 data]# gzip log.txt
[root@centos8 data]# gunzip log.txt.gz
[root@centos8 data]# gzip -9 log.txt
[root@centos8 data]# ll -h
total 232K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-r--r--. 1 root root 154K Dec 8 21:01 log2.txt
-rw-------. 1 root root 25K Dec 8 20:58 log.txt.gz
-rw-r--r--. 1 root root 48K Dec 8 21:01 log.txt.Z
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
[root@centos8 data]# gunzip log.txt.gz
[root@centos8 data]# gzip -1 log.txt
[root@centos8 data]# ll -h
total 236K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-r--r--. 1 root root 154K Dec 8 21:01 log2.txt
-rw-------. 1 root root 30K Dec 8 20:58 log.txt.gz
-rw-r--r--. 1 root root 48K Dec 8 21:01 log.txt.Z
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
#解壓縮之后預覽
[root@centos8 data]# zcat log.txt.gz
#將標準輸出壓縮到文件
[root@centos8 data]# cat messages |gzip file.gz
bzip2和bunzip2
包:bzip2
bzip2 [option] FILE
-k keep保留原文件
-d 解壓縮
-c 輸出到標準輸出抡笼,保留原文件不變
-# 壓縮比衷旅,默認9呀枢,壓縮比最高
[root@centos8 data]# bzip2 messages
[root@centos8 data]# ll -h
total 24K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-------. 1 root root 24K Dec 8 21:15 messages.bz2
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
[root@centos8 data]# bunzip2 messages.bz2
[root@centos8 data]# ll -h
total 156K
drwxr-xr-x. 2 root root 6 Dec 8 20:42 find
-rw-------. 1 root root 154K Dec 8 21:15 messages
drwxr-xr-x. 2 root root 27 Dec 2 22:30 scripts
xz和unxz
包:xz
xz [option] FILE
-k keep保留原文件
-d 解壓縮
-c 輸出到標準輸出缕减,保留原文件不變
-# 壓縮比,默認9捞奕,壓縮比最高
[root@centos8 compress]# xz -k messages
[root@centos8 compress]# unxz -k messages.xz
[root@centos8 compress]# ll -h
total 280K
-rw-------. 1 root root 154K Dec 8 21:15 messages
-rw-------. 1 root root 24K Dec 8 21:15 messages.bz2
-rw-------. 1 root root 25K Dec 8 21:15 messages.gz
-rw-------. 1 root root 21K Dec 8 21:15 messages.xz
-rw-------. 1 root root 48K Dec 8 21:15 messages.Z
壓縮效果(壓縮效果好牺堰,CPU消耗高,時間久)
xz > bz2 > gz > Z
[root@centos8 compress]# ll -h
total 280K
-rw-------. 1 root root 154K Dec 8 21:15 messages
-rw-------. 1 root root 24K Dec 8 21:15 messages.bz2
-rw-------. 1 root root 25K Dec 8 21:15 messages.gz
-rw-------. 1 root root 21K Dec 8 21:15 messages.xz
-rw-------. 1 root root 48K Dec 8 21:15 messages.Z
以上不能壓縮文件夾
zip和unzip
可能文件所屬信息
-r 打包文件夾
-d 解包到指定目錄
#查看安裝信息
[root@centos8 compress]# rpm -qi unzip
Name : unzip
Version : 6.0
Release : 41.el8
Architecture: x86_64
Install Date: Sat 14 Nov 2020 12:20:47 AM CST
Group : Applications/Archiving
Size : 431562
License : BSD
Signature : RSA/SHA256, Tue 02 Jul 2019 09:56:13 AM CST, Key ID 05b555b38483c65d
Source RPM : unzip-6.0-41.el8.src.rpm
Build Date : Sat 11 May 2019 10:14:14 AM CST
Build Host : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager : CentOS Buildsys <bugs@centos.org>
Vendor : CentOS
URL : http://www.info-zip.org/UnZip.html
Summary : A utility for unpacking zip files
Description :
The unzip utility is used to list, test, or extract files from a zip
archive. Zip archives are commonly found on MS-DOS systems. The zip
utility, included in the zip package, creates zip archives. Zip and
unzip are both compatible with archives created by PKWARE(R)'s PKZIP
for MS-DOS, but the programs' options and default behaviors do differ
in some respects.
Install the unzip package if you need to list, test or extract files from
a zip archive.
#打包時不要當前文件夾颅围,進入到文件夾之后用*
[root@centos8 compress]# zip message.zip *
adding: messages (deflated 84%)
[root@centos8 compress]# unzip message.zip -d /data/
#標準輸入壓縮伟葫,-表示標準輸入
[root@centos8 compress]# cat test |zip test -
cat: test: No such file or directory
adding: - (stored 0%)
#-p管道
[root@centos8 compress]# unzip -p messages.zip > messages
打包和解包
tar: tape archive磁帶歸檔,對多個文件或者目錄打包成一個文件院促,可以壓縮筏养,保留文件屬性不丟失
-c 打包
-t 預覽
-x 解包
-f 文件名
-v 打印信息
-C 指定目錄
-z 壓縮成gz
-j 壓縮成bz2
-J 壓縮成xz
-p 保留權限(acl權限不行)
--exclude 排除文件
-T 選項指定輸入文件
-X 選項指定包含要排除的文件列表
[root@centos8 tar]# tar -cf home.tar /home
tar: Removing leading `/' from member names
[root@centos8 tar]# tar -zcf home.tar.gz /home
tar: Removing leading `/' from member names
[root@centos8 tar]# tar -jcf home.tar.bz2 /home
tar: Removing leading `/' from member names
[root@centos8 tar]# tar -Jcf home.tar.xz /home
tar: Removing leading `/' from member names
[root@centos8 tar]# ll -h
total 15M
-rw-r--r--. 1 root root 11M Dec 8 22:11 home.tar
-rw-r--r--. 1 root root 1.3M Dec 8 22:13 home.tar.bz2
-rw-r--r--. 1 root root 1.5M Dec 8 22:12 home.tar.gz
-rw-r--r--. 1 root root 1015K Dec 8 22:13 home.tar.xz
[root@centos8 tar]# tar -xf home.tar.gz -C /opt
#tar實現(xiàn)文件復制(好像更快)
[root@centos8 tar]# tar -c /data/|tar x -C /data
#指定文件列表,排除文件列表
[root@centos8 tar]# tar -czf /data/a.tgz -T /root/includefilelist -X /root/excludefilelist
split
分割一個文件為多個文件
[root@centos8 tar]# split -b 1M home.tar.gz home_zip
[root@centos8 tar]# ll -h home_zip*
-rw-r--r--. 1 root root 1.0M Dec 8 22:41 home_zipaa
-rw-r--r--. 1 root root 466K Dec 8 22:41 home_zipab
[root@centos8 tar]# ll -h home_zip*
-rw-r--r--. 1 root root 1.0M Dec 8 22:42 home_zip00
-rw-r--r--. 1 root root 466K Dec 8 22:42 home_zip01
-rw-r--r--. 1 root root 1.0M Dec 8 22:41 home_zipaa
-rw-r--r--. 1 root root 466K Dec 8 22:41 home_zipab
[root@centos8 tar]# cat home_zipa* > home_zip
[root@centos8 tar]# ll -h home_zip
-rw-r--r--. 1 root root 1.5M Dec 8 22:44 home_zip
cpio
歷史悠久的打包和解包工具常拓,目前已經(jīng)較少使用
通過重定向的方式將文件進行打包備份渐溶,還原恢復,可以解壓.cpio和.tar的文件
cpio [選項] > 文件名或者設備名
cpio [選項] < 文件名或者設備名
-o output模式弄抬,打包茎辐,將標準輸入傳入的文件名打包后發(fā)送到標準輸出
-i input模式,解包掂恕,將標準輸入傳入的文件名解包到當前目錄
-t 預覽拖陆,查看標準輸入傳入的文件中包含的文件列表
-o filename 輸入到指定的歸檔文件名
-A 向已存在的歸檔文件中追加文件
-I filename 對指定的歸檔文件名解壓
-F filename 使用指定的文件名代替標準輸入或輸出
-d 解包生成目錄,在cpio還原時懊亡,自動建立目錄
-v 顯示過程中的文件名
find /etc/|cpio -ov >etc.cpio
cpio -tv < etc.cpio(注意會覆蓋原始文件)
cpio -idv < etc.cpio