2012年4月30日 星期一

[Linux 命令] zip : 壓縮檔案

屬性 : 系統相關 - 備份與壓縮 
語法 : zip [參數] [檔案一] [檔案二] 
Ps. 檔案一, 檔案二 : 若執行壓縮動作時, 則檔案一為壓縮檔後產生的檔案, 檔案二為來源檔; 若執行解壓縮動作, 則檔案一為壓縮檔, 而不需要檔案二. 
參數 | 功能 
-a | 將檔案轉成 ASCII 模式
-A | 調整為可執行的自動解壓縮的檔案
-b 目錄 | 指定暫存目錄位置
-c | 再壓縮檔加上註解
-d | 指定刪除壓縮檔內的檔案
-D | 壓縮檔內不建立目錄名稱
-f | 與 -u 類似, 且指定檔案不在壓縮檔內會將其加入
-F | 嘗試修復損壞的壓縮檔
-g | 將檔案壓縮後附加在原有檔案後面
-j | 只儲存檔案名稱與內容
-J | 移除壓縮檔前不必要的資訊
-k | 使用 MS-DOS 相容的檔案名稱
-l | 壓縮檔案時, 將 LF(Line feed) 字元換成 LF+CF 字元
-ll | 壓縮檔案時, 將 LF+CF 字元換成 LF 字元
-m | 將檔案壓縮後, 刪除原始檔案
-n 字尾字串 | 不壓縮具有特定字尾的檔案
-o | 將壓縮檔內縮擁有的檔案最新異動時間設成壓縮檔的異動時間.
-q | 安全模式, 不顯示指令執行過程
-r | 將指定目錄下所有子目錄及檔案一併處理
-S | 包含系統檔與隱藏檔
-t 日期 | 把壓縮檔的最後修改日期訂在指定日期, 格式為 mmddyyyy
-T | 檢查備份檔內每個檔案是否正確
-u | 更新較新的檔案到壓縮檔
-v | 顯示指令執行過程
-x 範本格式 | 壓縮時步壓縮符合條件的檔案
-X | 不儲存額外的檔案屬性
-z | 替壓縮檔加上註解
- 壓縮率 | 壓縮率為 1-9, 較大數字代表壓縮率越大, 預設為6.


執行範例 : 
* 將目錄 test2 下所有檔案, 壓縮成為名為 test2.Z 的壓縮檔 : 
client:~ # zip test2.Z test2/* 
adding: test2/1.txt.gz (stored 0%) 
adding: test2/test (stored 0%) 
adding: test2/testfile (deflated 68%) 

* 承上例, 移除壓縮檔 test2.Z 內的檔案 testfile : 
client:~ # unzip -l test2.Z <列出壓縮檔內的檔案> 
Archive: test2.Z 
Length Date Time Name 
-------- ---- ---- ---- 
52 01-17-10 22:08 test2/1.txt.gz 
0 01-07-10 23:16 test2/test 
75 01-10-10 21:41 test2/testfile 
-------- ------- 
127 3 files 
client:~ # zip -d test2.Z test2/testfile 
deleting: test2/testfile 
client:~ # unzip -l test2.Z 
Archive: test2.Z 
Length Date Time Name 
-------- ---- ---- ---- 
52 01-17-10 22:08 test2/1.txt.gz 
0 01-07-10 23:16 test2/test  
-------- ------- 
52 2 files 



文件/文件夾加密 :
- 壓縮 HTTP_Normal.pcap 到 httpNormal.zip 並加密.
~$ zip -e httpNormal.zip HTTP_Normal.pcap
Enter password: # 輸入密碼
Verify password: # 再次輸入密碼
adding: HTTP_Normal.pcap
(deflated 26%)

- 解壓縮 httpNormal.zip
~$ unzip httpNormal.zip
Archive: httpNormal.zip
[httpNormal.zip] HTTP_Normal.pcap password: # 輸入解壓縮密碼

補充說明 : 
@. 若遇壓縮, 解壓縮的檔案為符號連結, zip 會讀取連結指向的檔案. 注意連結的檔案經過壓縮再解壓縮後, 其連結將不在存在, 成為與原始檔案內容完全相同的另一個檔案.

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...