今天因為準備遠端壓縮個檔案,結果用tar指令失敗了好幾次。看來指令還是常用才熟悉啊。
在linux下是不需要字尾名的,但通常tar歸檔字尾名為.tar,gzip壓縮後的字尾名為.gz,bzip2壓縮後的字尾名為.bz2。
指令用法:
tar [參數] [檔案或目錄]
<code>1</code>
<code>#比如把x檔案夾打包并用gzip壓縮。</code>
<code>2</code>
<code>tar -zcvf x.tar.gz x</code>
<code>3</code>
<code>4</code>
<code>#解壓到目前目錄</code>
<code>5</code>
<code>tar -xzvf x.tar.gz</code>
<code>6</code>
<code>#解壓到父目錄</code>
<code>7</code>
<code>tar -xzvf x.tar.gz -c ..</code>
打包和解包指令基本一樣,可看作是個逆過程,參數中是-c和-x的差別。解包時可以不需要指定目錄,預設解壓到目前目錄。如需指定目錄須使用-c參數。請對照上面樣例。
無論打包還是解包-f後都必須跟歸檔名。
<code>#這樣語句也能正确執行,注意-f</code>
<code>tar -cv x -f x.tar</code>
指定歸檔
-f 後面必須直接跟歸檔名
打包(create)
-c
解包
-x
詳細地列出處理的檔案
-v
檢視打包的檔案
-t
壓縮
-z 調用gzip壓縮 -j調用bzip2壓縮
時間限制參數
-n 比後面接的日期(yyyy/mm/dd)還要新的才會被打包進建立的檔案中
排除指定檔案
–exclude file:不将 file 打包!
保留原本檔案的屬性
-p
這些參數中 c/x/t 僅能存在一個!不可同時存在!
指令用法:
zip [參數名] [壓縮包名] [被打包的檔案]
unzip [壓縮包名]
<code>#壓縮,如果不加.zip字尾,會自動添加。</code>
<code>zip a.zip a.o</code>
<code>#解壓</code>
<code>unzip a.zip</code>
zip
遞歸壓縮
-r遞歸搜尋目錄下的所有檔案夾目錄,預設不會把目錄下的檔案壓縮進去。
靜默壓縮
-q
添加注釋
-z
壓縮效率
–數字介于0-9的數值,數值越小效率越低,但越快。0就是不壓縮
設定壓縮日期
嘗試修複壓縮包
-f
壓縮成自解壓檔案
-a
unzip
檢視壓縮包,不解壓
-l 列出檔案 -v 列出檔案詳細資訊
解壓到指定的目錄
-d
是否覆寫以存在的檔案
-n 不覆寫 -o 覆寫
檢查壓縮包是否損壞
-t 不解壓
檢視壓縮包注釋
不重建文檔的目錄結構
-j 把所有檔案解壓到同一目錄下
(未完待續)