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標頭檔案 這個函式需要兩個引數,第乙個引數表示要 分配的儲存區個數,第二個引數表示單個 儲存區的大小 這個函式的返回...