在Linux系統(tǒng)中,我們通常使用的文件壓縮命令有:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(切割文件) , zgrep(在壓縮文件中尋找匹配的正則表達式), zip ,unzip, tar ,rar。
最后四個是我比較常用的,今天的筆記就寫這四個的好了。
1、tar:
tar命令:tar [選項...] [FILE]...
輸入“tar -?”獲取相關(guān)幫助信息,tar的幫助文檔給出示例如下:
示例
tar -cf archive.tar foo bar # 從文件 foo 和 bar 創(chuàng)建歸檔文件archive.tar。
tar -tvf archive.tar # 詳細列舉歸檔文件 archive.tar中的所有文件。
tar -xf archive.tar # 展開歸檔文件 archive.tar中的所有文件。
如果是要壓縮文件夾的話,輸入:
tar -cvf dirArchive.tar /dirName
同樣的,要將歸檔文件解壓到特定文件夾的話,則是:
tar -xvf dirArchive.tar /dirName
下面復(fù)習(xí)一下。我們先人為做個文件夾出來,里面放置若干文件夾和文件:
我們首先創(chuàng)建一個tar文件,先壓縮一個文件夾(testdir):
tar -cf testdir.tar testdir
然后列出該壓縮包里的結(jié)構(gòu):
接著我們向這個壓縮包追加文件:
當(dāng)然了,上述單步操作沒必要做了,壓縮包里面已經(jīng)有這個文件。
然后再看看這個壓縮包里的結(jié)構(gòu):
如果使用示例中的-v選項,則會將壓縮包里的文件屬性全部列出。包括權(quán)限,創(chuàng)建人,字節(jié)大小,修改時間和文件名:
從tar壓縮文件中解壓并顯示文件列表:
一般來說比較常用到的選項有主操作選項:
另外再練習(xí)一下其他的一些用法:
1、當(dāng)壓縮testdir目錄的時候,需要將文件夾根路徑內(nèi)的test文件排除:
2、只壓縮比指定時間更新的文件:
3、壓縮所有文件名前綴為“te”的文件或文件夾(或者壓縮后綴為“st”的文件):
最后補充一下常用的選項:
-p, --preserve-permissions, --same-permissions
保留解壓文件權(quán)限信息(默認只為超級用戶服務(wù))
--preserve 與 -p 和 -s 一樣
--same-owner 嘗試解壓時保持所有者關(guān)系一致(超級用戶默認此項)
-r, --append 追加文件至歸檔結(jié)尾
-u, --update 僅追加比歸檔中副本更新的文件
-k, --keep-old-files 解壓時不要替換存在的文件
--keep-newer-files
不要替換比歸檔中副本更新的已存在的文件
--no-overwrite-dir 保留已存在目錄的元數(shù)據(jù)
--overwrite 解壓時重寫存在的文件
--overwrite-dir
解壓時重寫已存在目錄的元數(shù)據(jù)(默認)
--recursive-unlink 解壓目錄之前先清除目錄層次
--remove-files 在添加文件至歸檔后刪除它們
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE 只保存比 DATE-OR-FILE 更新的文件
2、rar:
rar <command> -<switch 1> -<switch N> <archive> <files...><@listfiles...> <path_to_extract>
Linux系統(tǒng)的默認軟件包里是不包含rar壓縮工具的,所以我們先安裝rar:
sudo apt-get install rar
<command>選項只可以從給出的選項中輸入一個(且只能一個),我們看一下它提供的命令列表:
使用舉例,比如說現(xiàn)在我們要進行文件壓縮:
在完成壓縮之后,我們可以通過命令l獲取壓縮文件內(nèi)具體的結(jié)構(gòu)信息:
甚至可以通過命令p將壓縮文件內(nèi)的所有信息輸出到控制臺:
<switch N>部分則提供了一些功能性的選項。
比如說以追加性的方式更新壓縮文件可選用-ad: