day15 linux檔案管理之檔案壓縮

2021-09-29 23:33:36 字數 4987 閱讀 7396

1.什麼是壓縮

2.為什麼要對檔案進行壓縮

3.windows的壓縮包與linux的壓縮包能否互通

4.linux下壓縮包有哪些常見的型別格式

壓縮工具

.zip

zip壓縮工具

.gzgzip壓縮工具,會刪除原檔案(通常配合tar使用)

.bz2

bzip壓縮工具,只能壓縮檔案,會刪除原資料夾(通常配合tar使用)

.tar.gz

先使用tar命令歸檔打包,然後使用zip壓縮

.tar.gz2

先使用tar命令歸檔打包,然後使用bzip壓縮

5.linux gzip zip tar 工具的使用

1)gzip 打包與壓縮僅對檔案有效

[root@oldboy--day01 ~]#yum install gzip -y   #安裝gzip工具

[root@oldboy--day01 ~]# gzip 1.txt #在當前目錄下壓縮檔案1.txt

[root@oldboy--day01 ~]# zcat 1.txt.gz #檢視壓縮檔案1.txtx.gz

[root@oldboy--day01 ~]# gzip -d 1.txt.gz #解壓gzip的壓縮包

使用場景:當需要讓某個檔案快速關閉和快速啟用

2)linux zip壓縮工具使用

[root@oldboy--day01 ~]# yum install zip unzip -y #安裝zip和unzip工具
[root@oldboy--day01 ~]# zip 2.txt.zip 2.txt    #打包方式為:zip 打包後的檔名 需要打包的檔案

[root@oldboy--day01 ~]# unzip -l 2.txt.zip #檢視打包後的檔案內容

[root@oldboy--day01 ~]# zip -r dir.zip dir/   #打包目錄為壓縮檔案包壓縮包名稱為dir.zip
[root@oldboy--day01 ~]# zip -t filename.zip   #檢視壓縮包檔案是否打包完整
[root@oldboy--day01 ~]# unzip -l 2.txt.zip #檢視壓縮後的檔案知是完整

[root@oldboy--day01 ~]# unzip -t 2.txt.zip #檢測檔案打包後是否打包成功

[root@oldboy--day01 ~]# unzip 2.txt.zip       #解壓檔案,預設解壓至當前目錄
[root@oldboy--day01 ~]# unzip 2.txt.zip -d  /opt/         #解壓2.txt.zip至/opt/目錄下
[root@oldboy--day01 ~]# zip -r /tmp/test.zip file dir/ #打包file檔案與目錄dir
[root@oldboy--day01 ~]# unzip /tmp/test.zip           #解壓檔案至當前資料夾

[root@oldboy--day01 ~]# unzip /tmp/test.zip -d /opt/ #解壓檔案到指定資料夾

3)linux tar工具的使用

tar是linux下最常用的壓縮與解壓工具,支援檔案和目錄歸檔

語法:tar [-zjxcvfpp] filename

c #建立新的歸檔檔案

x #對歸檔檔案進行解壓

f #指定包檔名,多引數時f寫最後

t #列出歸檔檔案裡的檔案列表

z #使用gzip壓縮歸檔後的檔案(.tar.gz)

j #使用bzip2壓縮歸檔後的檔案(.tar.bz2)

j #使用xz壓縮歸檔後的檔案(tar.xz)

c #指定解壓目錄位置

x #派出多個檔案(寫入需要排除的檔名稱)

h #打包軟鏈結

--exclude #在打包的時候寫入需要排除檔案或目錄

常見打包與壓縮組合

cjf #打包tar.bz格式

cjf #打包tar.xz格式(使用較少)

zxf #解壓tar.gz格式

jxf #解壓tar.bz格式

czf #打包tar.gz格式

tf #檢視壓縮包內容

xf #自動選擇解壓模式

示例:

將檔案或目錄進行打包壓縮

[root@oldboy--day01 ~]# tar czf test.tar.gz test/ test2  #以gzip方式壓縮test與test2這兩個目錄

[root@oldboy--day01 ~]# tar cjf test.bz2 dir.txt dir/ #以bz2方式壓縮dir.txt 檔案與dir目錄

[root@oldboy--day01 ~]# tar tf test.tar.gz  #不解壓檢視壓縮包內容

[root@oldboy--day01 ~]# tar tf test.tar.bz2 #不解壓檢視壓縮包內容

[root@oldboy--day01 ~]# tar tf test.tar.xz #不解壓檢視壓縮包內容

[root@oldboy--day01 ~]# tar xf test.tar.gz #解壓檔案至當前目錄

[root@oldboy--day01 ~]# tar xf test.tar.bz2 #解壓檔案至當前目錄

[root@oldboy--day01 ~]# tar xf test.tar.xz #解壓檔案至當前目錄

[root@oldboy--day01 ~]# tar xf test.tar.gz -c /tmp/ #解壓至指定目錄

2.打包/tmp/下所有檔案

方式一:

[root@oldboy--day01 ~]# find tmp/ -type f |xargs tar czf tmp.tar.gz  #打包/目錄下的所有檔案打包格式為tar.gz
方式二:

[root@oldboy--day01 ~]# tar czf tmp.tar.gz $(find /tmp/ -type f)  #打包/目錄下的所有檔案打包格式為tar.gz
3.打包鏈結檔案,打包鏈結檔案的真實檔案

4.排出操作

[root@oldboy--day01 ~]# tar czf etc.tar.gz /etc/ --exclude=etc/services   #排除/etc/services檔案打包壓縮其他檔案
[root@oldboy--day01 ~]# tar czf etc.tar.gz /etc/ --exclude=etc/passwd --exclude=etc/shadow      #排除/etc/passwd檔案和shadow檔案打包壓縮其他檔案
5.將需要排除的檔案寫入乙個檔案中

[root@oldboy--day01 ~]# cat shanchu.txt 

/etc/passwd

/etc/passwd-

/etc/security/opasswd

/etc/pam.d/passwd

[root@oldboy--day01 ~]# tar czxf shanchu.txt etc.tar.gz /etc/ #壓縮除檔案中以外的其他檔案

例題:

0.環境準備

[root@oldboy--day01 ~]# yum install mariadb-server

[root@oldboy--day01 ~]# systemctl start mariadb

[root@oldboy--day01 ~]# mkdir /backup

方法1.mysql備份及恢復

[root@oldboy--day01 ~]# mkdir /var/lid/mysql -p

[root@oldboy--day01 ~]# tar cjf /backup/myspl.tar.xz /var/lid/mysql #將/var/lid/mysql目錄下的檔案打包成tar.xz格式

tar: removing leading `/' from member names

[root@oldboy--day01 ~]# tar xf /backup/myspl.tar.xz  -c /  #將壓縮包檔案解壓至根目錄下
方法2.mysql備份及恢復

[[root@oldboy--day01 ~]# cd /var/lib/mysql 

[root@oldboy--day01 ~]# tar cjf /backup/mysql.tar.xz * #壓縮當前目錄下的所有內容

[root@oldboy--day01 ~]# tar tf /backup/mysql.tar.xz #不解壓檢視壓縮包內的內容

[root@oldboy--day01 ~]# tar xf /backup/mysql.tar.xz - c /var/lib/mysql #將檔案解壓至原位置

linux之檔案管理

touch 檔名 建立乙個新的檔案 檔案 檔名,資料,元資料 stat 檔名 檢視檔案屬性 注意 touch不但可以建立檔案也可以修改檔案的時間戳 時間戳分為 atime 檔案內容被訪問的時間標識 mtime 檔案內容被修改的時間標識 ctime 檔案屬性或檔案內容被修改的時間標識 mkdir di...

Linux之檔案管理

在windows系統中檢視檔案先進入相應的碟符,再次進入檔案目錄 在windows中都是這樣的 c d 等 在linux中只有乙個根目錄,呈現倒置的樹狀節點,使用tree命令檢視樹狀結構 在centos7中預設沒有安裝tree命令 centos8預設安裝 mount dev sr0 media 設定...

檔案操作(day15)

呼叫函式可以使用被呼叫函式動態分配的 儲存區calloc函式也可以動態分配一組連續的 儲存區這個函式可以把所有動態分配的儲存區 內容設定成0 為了使用這個函式也需要包含stdlib.h標頭檔案 這個函式需要兩個引數,第乙個引數表示要 分配的儲存區個數,第二個引數表示單個 儲存區的大小 這個函式的返回...