linux學習筆記——打包、壓縮、遠程文件傳輸

############打包、壓縮##########################

1.打包 (打包表示把一堆文件變成一個)
tar            ##打包工具
        -f        ##指定生成包的名字
        -c        ##創建包
        -v        ##顯示創建過程
        -t        ##查看包中內容
        -x        ##解包
        -r        ##追加文件到包中
        -C        ##指定目錄
        --delete filename  ##刪除包中指定文件
        --get      filename  ##取出包中指定文件
eg:
tar -cf test.tar /etc/    ##生成包(ll -lh 查看大小,單位M)
tar -cvf test.tar         ##生成包,可以看到過程
tar -xf test.tar     ##解包到當前
tar -xvf test.tar     ##解包到當前,可以看到過程
tar -xf test.tar -C /mnt/     ##解包到/mnt/目錄下
tar -tf test.tar    ##查看包中內容
tar -rf test.tar file    ##追加file文件到test.tar中
tar -f test.tar --get file    ##取出包中指定的file文件

2.壓縮 (壓縮通過特定的算法來減小計算機文件大小的機制)    
1)gzip
gzip test.tar          ##壓縮test.tar===>test.tar.gz格式
gunzip    test.tar.gz    ##解壓test.tar.gz===>test.tar
gzip -d 壓縮包名稱    ##解壓
分步操作:tar -cf test.tar /etc/      ##先要生成包
        gzip test.tar            ##gzip再壓縮
一步操作:tar -zcvf test.tar.gz /etc/    ##一次性打包壓縮文件

tar -zxvf test.tar.gz         ###解壓test.tar.gz===>test

2)bz2
bzip2 test.tar             ##壓縮test.tar =====> test.tar.bz2格式
bunzip2 test.tar.bz2         ##解壓test.tar.bz2 =====> test.tar
tar jcvf test.tar.bz2 目標文件     ##一步打包壓縮文件
tar jxvf test.tar.bz2        ##解壓test.tar.bz2===>test

3)xz
xz test.tar                 ##壓縮test.tar =====> test.tar.xz格式
unxz test.tar.xz             ##解壓test.tar.xz =====> test.tar
tar Jcvf test.tar.xz 目標文件    ##一步打包壓縮文件
tar Jxvf test.tar.xz        ##解壓test.tar.xz===>test

4)zip(windows和linux都支持的格式,zip壓縮會保留源文件)
zip -r test.tar.zip test.tar        ###對test.tar壓縮(壓縮目錄要加-r,不然壓縮比是0%)
unzip test.tar.zip            ###解壓
eg:
zip test.zip /etc/        ##壓縮/etc/
zip test.tar.zip test.tar    ##壓縮test.tar===>test.tar.zip格式
格式:zip 壓縮文件 源文件

注:先tar打包,在使用zip壓縮的文件比直接壓縮目錄的文件要小

######################遠程文件傳輸#####################
scp            ##遠程複製(是新建的過程)
scp     file    user@ip:/directory        ##上傳文件
scp -r  dir    user@ip:/directory        ##上傳目錄
scp     user@ip:/filename    /direcotry    ##下載文件
scp -r    user@ip:/directory    /direcotry    ##下載目錄

eg:
scp -r test/ [email protected]:/root/Desktop
##把test目錄遠程傳輸到[email protected]:/root/Desktop
scp -r [email protected]:/root/Desktop/test1 /home/westos/Desktop  
##把[email protected]:/root/Desktop/test1文件傳到本地桌面

rsync            ##遠程同步(rsync會打包同步,比scp快)
        -a    ##歸檔模式,以遞歸方式傳輸,並保持所有文件屬性    
        -r    ##同步目錄
        -l    ##不忽略軟鏈接
        -H    ##保留硬鏈接
        -p    ##不忽略權限(permission,屬性完全一致)
        -t    ##不忽略時間戳
        -g    ##不忽略屬組信息
        -o    ##不忽略屬主信息
        -D    ##不忽略設備文件
        -z    ##對備份的文件在傳輸時進行壓縮處理
        -v    ##詳細模式輸出
        --stats        ##給出某些文件的傳輸狀態
        --delete    ##刪除目標目錄中有而源目錄重沒有的多餘文件。(下面兩個靠譜)
        --delete-before    ##在同步之前作比較,刪除目標目錄中有而源目錄重沒有的多餘文件。
        --delete-after    ##在同步之後,刪除目標目錄中有而源目錄重沒有的多餘文件。

rsync file|direcotry user@ip:/directory
rsync user@ip:/directory(是目標) /directory

eg:rsync [email protected]:/mnt/*  /mnt    #同步172.25.8.11的/mnt目錄內容到本地/mnt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章