zip 常用參數:
-r 遞歸,將指定目錄下的所有文件和子目錄一並處理
-S 包含系統和隱藏文件
-y 直接保存符號連接,而非該連接所指向的文件
-X 不保存額外的文件屬性
-m 將文件壓縮並加入壓縮文件后,刪除源文件
-<壓縮級別> 1~9,數字越大,壓縮率越高
-F 嘗試修復已損壞的壓縮文件
-T 檢查備份文件內的每個文件是否正確無誤
-q 不顯示指令執行過程
-g 將文件壓縮后附加在既有的壓縮文件之后,而非另行建立新的壓縮文件
-u 更新壓縮包內文件
-f 更新壓縮包內文件。如果符合條件的文件沒有包含在壓縮包中,則壓縮后添加
-$ 保存第一個被壓縮文件所在磁盤的卷標
-j 只保存文件名稱及其內容
-D 壓縮文件內不建立目錄名稱
-i <表達式> 壓縮目錄時,只壓縮符合條件的文件
-x <表達式> 排除符合條件的文件
-n <文件名后綴> 排除指定文件名后綴的文件
-b <緩存路徑> 指定臨時文件目錄
-d <表達式> 從壓縮文件內刪除指定的文件
-t <日期時間> 把壓縮文件的日期設成指定的日期
-o 以壓縮文件內擁有最新更改時間的文件為准,將壓縮文件的更改時間設成和該文件相同
-A 調整可執行的自動解壓縮文件
-c 替每個被壓縮的文件加上注釋
-z 替壓縮文件加上注釋
-k 使用MS-DOS兼容格式的文件名稱。
-l 壓縮文件時,把LF字符置換成LF+CR字符。
-ll 壓縮文件時,把LF+CR字符置換成LF字符。
關於unzip的參數:
-P <密碼> zip壓縮包的密碼
-d <路徑> 指定解壓路徑
-n 解壓縮時不覆蓋原有文件
-f 覆蓋原有文件
-o 不經詢問,直接覆蓋原有文件
-u 覆蓋原有文件,並將壓縮文件中的其他文件解壓縮到目錄中
-l 顯示壓縮文件內所包含的文件
-t 檢查壓縮文件是否正確
-z 顯示壓縮包注釋
-Z unzip -Z等於執行zipinfo指令
-j 不處理壓縮文件中原有的目錄路徑
-C 壓縮文件中的文件名稱區分大小寫
-L 將壓縮文件中的全部文件名改為小寫
-s 將文件名中的空格轉換下划線
-X 解壓縮時保留文件原來的UID/GID
-q 執行時不顯示任何信息
-v 執行是時顯示詳細的信息
-c 將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換
-p 與-c參數類似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換
-a 對文本文件進行必要的字符轉換
-b 不要對文本文件進行字符轉換
-x <表達式> 處理里排除壓縮包中的指定文件
-M 將輸出結果送到more程序處理
以上來自: https://www.cnblogs.com/yinzhengjie/p/6247833.html
zip 例子:
tarcount=$1 islua=`echo *_virdir` if [[ $islua != "*_virdir" ]]; then if [ -d ../zipluadir ]; then rm -rf ../zipluadir fi mkdir ../zipluadir for (( i = 1; i <= $tarcount; i++ )); doif [ -d $i ]; then if [ -d $i_virdir ]; then zip -qr ../zipluadir/game$i.zip ./$i ./$i_virdir fi fi done else if [ -d ../ziph5dir ]; then rm -rf ../ziph5dir fi mkdir ../ziph5dir for (( i = 1; i <= $tarcount; i++ )); do #statements if [ -d $i ]; then zip -r ../ziph5dir/game$i.zip ./$i fi done fi
使用 cd workpath
./zipshell 4
用途:
1、獲取當前目錄下是否存在 xxx_virdir 的目錄 區別是 當作lua 還是h5來處理
2、將對應目錄下的文件 通過 zip 命令的 -r 選項 遞歸子目錄壓縮成當個zip文件