Linux-tar
1. tar簡介
2. tar文件
3. tar常用選項
4. tar基本用法(不壓縮)
5. tar特殊用法
1. tar簡介
https://zh.wikipedia.org/wiki/Tar
Unix和類Unix系統上的壓縮打包工具,可以將多個文件合並為一個文件,打包后的文件名亦為“tar”。目前,tar文件格式已經成為POSIX標准,最初是POSIX.1-1988,目前是POSIX.1-2001。本程序最初的設計目的是將文件備份到磁帶上(tape archive),因而得名tar。
2. tar文件
tar代表未壓縮的tar文件。已壓縮的tar文件則附加壓縮文件的擴展名,如經過gzip壓縮后的tar文件,擴展名為“.tar.gz”。
由於受到DOS8.3文件名格式的限制,常使用下列縮寫:
tar選項 | 縮寫后綴 | 完整后綴 | 壓縮命令 | 解壓命令1 | 解壓命令2 |
-j, | *.tb2; tbz | *.tar.bz2; *.tar.bz | bzip2 -z | bzip2 -d | bunzip2 |
-z, | *.tgz | *.tar.gz | gzip | gzip -d | gunzip |
-Z, | *.taz | *.tar.Z | compress | uncompress | |
-J, | *.txz | *.tar.xz | |||
--lzma | *.tlz | *.tar.lzma |
3. tar常用選項
主要操作方式:
-c, | --create | 創建一個新的存檔 |
-t, | --list | 列出檔案的內容 |
-x, | --extract, --get | 從存檔中提取文件 |
-r, | --append | 將文件附加到存檔的末尾 |
-u, | --update | 只附加比歸檔中的副本更新的文件 |
-A, | --catenate, --concatenate | 將tar文件作為整體追加到另一個tar文件中 |
-d, | --diff, --compare | 找到存檔和文件系統之間的差異 |
--delete | 從檔案中刪除(不在磁帶上!) | |
--test-label | 測試存檔卷標並退出 |
壓縮選項:
-j, | --bzip2 | 通過bzip2過濾存檔 |
-z, | --gzip, --gunzip, --ungzip | 通過gzip過濾存檔 |
-Z, | --compress, --uncompress | 通過壓縮過濾存檔 |
-J, | --xz | 通過xz過濾存檔 |
--lzma | 通過lzma過濾存檔 | |
--lzip | 通過lzip過濾存檔 | |
--lzop | 通過lzop過濾存檔 | |
--zstd | 通過zstd過濾存檔 | |
-a, | --auto-compress | 使用存檔后綴來確定壓縮程序 |
--no-auto-compress | 不要使用存檔后綴來確定壓縮程序 |
其他常用選項:
Device selection and switching: | ||
-f, | --file=ARCHIVE | 使用存檔文件或設備存檔. 可以用"-"代表標准輸出或標准輸入。 |
Informative output: | ||
-v, | --verbose | 詳細列出已處理的文件 |
Overwrite control: | ||
-k, | --keep-old-files | 提取時不要替換現有文件,將它們視為錯誤 |
Local file selection: | ||
-P, | --absolute-names | 不要從文件名中刪除前導'/'。即絕對路徑。 |
4. tar基本用法
不壓縮
-c 打包 $ tar -cvf archive.tar file1 file2
-t 查看 $ tar -tvf archive.tar
-x 解包 $ tar -xvf archive.tar
增加壓縮,只需要參照上面的選項,添加對應的壓縮選項即可。
5. tar特殊用法
使用tar復制文件夾
$ tar cf – toma | (cd targer; tar xvf -)
高效的復制了toma中的文件和目錄,還保留了權限。注: 'f'后邊跟'-',從stdin讀取數據.
解開C源碼包的注意事項
軟件源碼包,通常是tar的壓縮包。解包前先用tvf選項+壓縮選項檢查源碼包內容。
1. 有些源碼包解開時不會建立自己的總目錄,會把全部放到當前目錄下。這種要進入手動建立的文件夾后再解包。
2. 要留意那些包含絕對路徑名的文件。可能包含木馬或一些惡意代碼。