**本教學適用於 Linux/MacOS 和 Windows 作業系統**
各位大大好,這是我的第一篇教學文,本人中文不太好如有任何錯誤還請各位多多指點指點,小弟一定在最短的時間內修正.
Tar (或Tarball) 為 Unix Like 系統常用的打包程式,它可以將許多個檔案打包成一個檔案,由於本身並沒有壓所的機制,通常會搭配 gzip 或 bzip2 來減少使用空間,然而製作出的檔案附檔名通常為 tar.bz2 或 tar.gz,在 Windows 普遍天下的今天許多壓縮檔管理程式通常都已支持這類型的檔案.
但又由於 gzip 和 bzip2 並未提共加密機制,如要加密則必須再搭配可將檔案加密的程式,本文以 OpenSSL 的 des3 編碼為例,檔案以此加密的通常會附上 .des3 的附檔名.
1. 確認軟體
在開始前先確定本機裝有軟體 OpenSSL, Tarball, Gzip/Bzip2.
Linux/MacOS
目前 MacOS 及大部分的 Linux 預設都已經裝好相關套件,如沒有可以以管理員身分依據不同系統執行 apt-get install openssl tar (Debian-like 系統) 或 yum install openssl tar (RPM-base 系統) 來進行安裝.
Windows
必須下載 gnuwin32-libarchive, gnuwin32-libarchive-dep, gnuwin32-openssl
下載後開啟每個壓所檔內的 bin 資料夾,將附檔名為 .exe 和 .dll 複製到 C:\Windows\System32.
但由於原程式是以 UTF-8 編碼進行檔案命名而 Windows 是以 UTF-16 編碼,因此如檔案包含任何非 ASCII 字源 (如英文字母) 將無法正確顯是檔案名稱,在此建議安裝 Windows-Cygwin 系統 (請往下看) 解決此問題.
Windows-Cygwin
Cygwin 是一套融合 Windows 和 Unix-like 系統的系統,它允許使用者在 Windows 以 Unix-like 方式操作系統.
安裝 Cygwin 建議下載本人自行打包的 Cygwin 進行安裝,此檔案需的容量較小.下載後開啟壓縮檔並將 Cygwin 資料複製到 C:\ 並將 cygwin.bat 檔案複製桌面既可.然而也可於 http://www.cygwin.com 下載安裝程式, 執行後當詢問需安裝原件時選則 OpenSSL, Tar 既可.
2. 開啟 Terminal
接下來開啟 Terminal:
- Windows 系統按 [窗戶] + R 後執行 CMD 開啟 Terminal.
- Windows-Cygwin 可在桌面上找到 名為 cygwin.bat 或 cygwin 的捷徑, 按兩下執行既可.
- MacOS 則在 Application 裡找.
- Linux 因每個系統不一樣,但應該在選單裡找找就可以找到了.
開啟 Terminal 後以 cd 指令切換到檔案下載的資料夾. 下載檔案的附檔名通常為 .tar.gz.des3 或 tar.bz2.des3, 有些則還會多加 .partXX (XX為阿拉伯數字) 或 .xx (xx為英文字母),代表壓縮檔已被分割,需合成後才可解壓縮.
3. 合成檔案
如檔案未被分割則可以跳過此步驟,下面步驟將示範如何合成.
Linux/MacOS/Windows-Cygwin
在 Terminal 下執行:
cat [檔名].tar.gz.des3.part?? > [檔名].tar.gz.des3
Windows
在 Terminal 下執行:
copy /b [檔名].tar.gz.des3.part?? [檔名].tar.gz.des3
檔案合成後會產生一個 [檔名].tar.gz.des3 的檔案,此時可往下一步驟進行解壓縮動作.
4. 解壓縮
此步驟將示範如何解壓縮 [檔名].tar.gz.des3
Linux/MacOS/Windows-Cygwin
在 Terminal 下執行:
cat [檔名].tar.gz.des3 | openssl des3 -d -k [密碼] | tar zxf -
Windows
在 Terminal 下執行:
type [檔名].tar.gz.des3 | openssl des3 -d -k [密碼] | bsdtar zxf -
以上動作將把檔案解壓所到目前的資料夾,或可附上 -C [路徑] 既可將資料解壓所到指定的 [路徑].
註1: 當附上 -C [路徑] 時,如果目的路徑不存在將會發生錯誤.
註2: 如果附檔名為 .bz2 則需將指令 zxf 部分替換為 jxf.
5. 簡化
然而其實要將檔案合成再解壓所滿浪費時間和空間的,以下步驟將示範如何將合程和解壓縮動作一步驟完成
Linux/MacOS/Windows-Cygwin
在 Terminal 下執行:
cat [檔名].tar.gz.des3.part?? | openssl des3 -d -k [密碼] | tar zxf -
Windows
在 Terminal 下執行:
type [檔名].tar.gz.des3.part?? | openssl des3 -d -k [密碼] | bsdtar zxf -
就這樣,相信大家都有成功的解壓縮檔案,如沒有請檢查是否發生步驟 (4) 註解所提到的,並確認所下載的檔案是否完整. 如有任何問題或發現文章有錯誤歡迎回覆.
參考資料:
Encrypting a tar file using openssl
[billylcm 在 2010-5-11 03:05 AM 作了最後編輯]
|