Linux基礎知識(檔案在系統中的傳輸,歸檔及壓縮)
一、檔案 在系統中的傳輸(scp和rsync命令)
一. scp與rsync的區別
- scp傳輸速度較慢,傳輸過程是一種資料的重新建立,連同屬性一塊建立。
- rsync傳輸速度快,傳輸過程是資料的同步,是一種映象複製的過程,並非所有檔案都可以資料同步,可以資料同步的檔案,映象過去也會改變屬性,若要不改變屬性需要加命令。
二. rsync 傳輸
說明:rsync是一種映象複製的過程,速度快,但預設會忽略檔案屬性。
rsync -r 同步目錄
rsync -p 同步許可權
rsync -o 同步檔案所有人
rsync -g 同步檔案所有組
rsync -l 同步連結
rsync -t 同步檔案時間戳
rsync -D 同步裝置檔案
實驗如下:
第一:先建立環境(兩臺虛擬機器)
主機:desktop------ ip 172.25.254.150
主機: server-------- ip 172.25.254.250
- 在server主機中先cd /mnt 進入mnt 後touch westos{1…5}建立檔案,並檢視ll
- chown student.student * 修改檔案所有人和所有組都為student。
- chmod 777 westos* 更改wenstos所有檔案的許可權為滿許可權
- ln -s /mnt/westos1 /mnt/file 建立file連結
實驗: - rsync -r /mnt/
檔案到[email protected] 使用者的/mnt/下。
在[email protected]使用者檢視ll
- rsync -rp /mnt/ [email protected]:/mnt/ 資料同步/mnt下的
檔案到[email protected] 使用者的/mnt/下,並且同步許可權。
- rsync -rpo /mnt/ [email protected]:/mnt/ 資料同步/mnt下的
檔案到[email protected] 使用者的/mnt/下,並且同步許可權和所有人。
- rsync -rpog /mnt/ [email protected]:/mnt/ 資料同步/mnt下的
檔案到[email protected] 使用者的/mnt/下,並且同步許可權和所有人和所有組。
- rsync -rpogt /mnt/ [email protected]:/mnt/ 資料同步/mnt下的
檔案到[email protected] 使用者的/mnt/下,並且同步許可權和所有人和所有組和時間。
- rsync -rpogtl /mnt/ [email protected]:/mnt/ 資料同步/mnt下的
檔案到[email protected] 使用者的/mnt/下,並且同步許可權和所有人和所有組和時間和連結。
在/mnt下檢視ll
- 檢視/dev/pts字元裝置檔案
執行 rsync -r /dev/pts [email protected]:/mnt/命令時因為沒有加-D會直接跳過,不會進行傳輸。
rsync -Dr /dev/pts/ [email protected]:/mnt/ 資料同步/dev/pts/下的
檔案到[email protected] 使用者的/mnt/下。加-D就會傳輸成功
三、檔案歸檔,就是把多個檔案變成一個歸檔檔案
-
tar 命令
tar -c 建立
tar -v 顯示過程
tar -f 指定歸檔檔名稱
tar -x 解檔(取出歸檔檔案中的所有內容)
tar -t 檢視歸檔檔案內容
tar -r 新增檔案到歸檔檔案中
tar --get 解檔指定檔案
tar --delete 刪除歸檔中的指定檔案
tar -C 指定解檔目錄 -
tar cf etc.tar /etc /mnt 建立一個歸檔檔案etc.tar將/etc和/mnt裝在歸檔檔案中。(-c 建立)(-f指定歸檔檔名稱)
tar tf etc.tar 檢視歸檔檔案內容 (t檢視內容)
tar -rf etc.tar file 新增file檔案到歸檔檔案中(-r新增)
tar -xf etc.tar 解檔(取出歸檔檔案的所有內容)(-x 解檔)
tar -f etc.tar --get file 解檔file(–get 解檔指定檔案)
tar -f etc.tar --delete mnt 刪除歸檔檔案中的mnt (–delete 刪除歸檔檔案中的指定檔案)
tar -xf etc.tar -C /mnt/ 將歸檔檔案中的所有檔案全部解檔到/mnt目錄下(-C 指定解檔目錄)
四、檔案壓縮的四種格式以及解壓:
- zip 壓縮
zip -r etc.tar.zip etc.tar 壓縮成zip格式
unzip etc.tar.zip 解壓zip格式壓縮包
- gz 壓縮
gzip etc.tar 壓縮成gz格式
gunzip etc.tar.gz 解壓gz格式壓縮包
tar zcf etc.tar.gz /etc 把檔案歸檔為tar並壓縮成gz格式
tar zxf etc.tar.gz 解壓並解檔gz格式壓縮包
- bz2 壓縮
bzip2 etc.tar 壓縮成bz2格式
bunzip2 etc.tar.bz2 解壓bz2格式壓縮包
tar jcf etc.tar.bz2 /etc 把檔案歸檔為tar並壓縮成bz2格式
tar jxf etc.tar.bz2 解壓並解檔bz2格式壓縮包
- xz 壓縮
xz etc.tar 壓縮成xz格式
unxz etc.tar.xz 解壓xz格式壓縮包
tar Jcf etc.tar.xz /etc 把檔案歸檔為tar並壓縮成xz格式
tar Jxf etc.tar.xz 解壓並解檔xz格式壓縮包
- 建立並壓縮
建立並壓縮g-------->gz------> tar zcf etc.tar.gz /etc
建立並壓縮j-------->bz2------> tar jcf etc.tar.bz2 /etc
建立並壓縮J-------->xz-------> tar Jcf etc.tar.xz /etc
du -sh etc.tar 檢視壓縮大小
解壓:
tar zxf etc.tar.gz 解壓 gz
tar jxf etc.tar.bz2 解壓 bz2
tar Jxf etc.tar.xz解壓 xz
- file *