linux系統(tǒng)文件壓縮格式,常用的有*.tar.gz、*.gz、*.zip、*.tar,還有*.rar、.7z、.bz2、.tar.xz、.tar.bz2、.xz
格式:
zip filename.zip dirname
常用參數(shù)說明:
-r 遞歸打包包含子目錄的全部內(nèi)容
-q不顯示指令執(zhí)行過程,安靜模式
-o表示輸出文件,其后緊跟打包輸出文件名
-v顯示指令執(zhí)行過程或顯示版本信息。
-m將文件壓縮并加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中。
-x<范本樣式> 壓縮時排除符合條件的文件。
-e表示加密壓縮
-d 從壓縮文件內(nèi)刪除指定的文件。
-l 壓縮文件時,把LF字符 置換成LF+CR字 符。
-ll 壓縮文件時,把LF+CR字 符置換成LF字符。
-<壓縮效率>壓縮效率是一個介于1-9的數(shù)值。
案例:
1)打包logs目錄下的文件。進入logs目錄進行打包
zip -o test.zip *.log
# 將 test 目錄打包成一個文件
zip -r -q -o test.zip /home/test
# 使用 du 命令查看打包后文件的大小
du -h test.zip
# 使用 file 命令查看文件大小和類型
file test.zip
2)查找包含2019-09的log文件并打包成壓縮文件
find . -name "*2019-09*" -type f | grep -v "txt" | grep -v "manager" |grep -v "localhost" | xargs zip catalina201909_backuplog.zip
find . -name "*2019-09*" -type f | grep -v "catalina" | xargs zip otherl201909_backup.zip
3)從壓縮文件中刪除指定文件
#刪除打包文件中指定文件
zip -d test.zip test.txt
#刪除打包文件中指定目錄下的文件
zip -d test.zip test/test.log
4)向壓縮文件中添加指定文件
# 注意:此命令相當(dāng)于將指定文件移動到壓縮文件中,源文件會被刪除
zip -m test.zip localhost_access_log.2019-08-27.txt
5)壓縮文件時排除指定文件
zip test.zip test/* -x test/test.log
6)設(shè)置壓縮級別為9和1(9最大,1最小),重新打包
# 1表示最快壓縮但體積大,9表示體積最小但耗時最久,-x 排除上一次我們創(chuàng)建的zip文件,路徑必需為絕對路徑
zip -r -9 -q -o test_9.zip /home/test -x ~/*.zip
zip -r -1 -q -o test_1.zip /home/test -x ~/*.zip
# 再用 du 命令分別查看默認壓縮級別、最低、最高壓縮級別及未壓縮的文件的大小,-h 表示可讀,-d 表示所查看文件的深度
du -h -d 0 *.zip ~ | sort
PS: 關(guān)于 zip 命令,因為 Windows 系統(tǒng)與 Linux/Unix 在文本文件格式上的一些兼容問題,比如換行符(為不可見字符),在 Windows 為 CR+LF(Carriage-Return+Line-Feed:回車加換行),而在 Linux/Unix 上為 LF(換行),所以如果在不加處理的情況下,在 Linux 上編輯的文本,在 Windows 系統(tǒng)上打開可能看起來是沒有換行的。如果你想讓你在 Linux 創(chuàng)建的 zip 壓縮文件在 Windows 上解壓后沒有任何問題,那么你還需要對命令做一些修改