摘要
Unix/Unix-like的tar命令的基礎使用,較常見的用法。進階用法請見〈
tar命令的進階使用〉。本文使用環境是Ubuntu MATE 18.04。
簡介
tar (Tape ARchive)是Unix上常用來做備份封存資料用的命令,可使用磁帶機備份資料,也可存到磁碟中的檔案;當然也包含從封存檔中還原其中檔案的功能。
語法
tar [options...] [file...]
選項用法的形式
tar算是Unix中極古老的命令,有三種語法形式,可依個人習慣採用,也可混用:
- Traditional:tar cf archive.tar file_to_archive.txt
- Unix-style:tar -c -f archive.tar file_to_archive.txt
- GNU-style:tar --create --file archive.tar file_to_archive.txt
2.的寫法也可像:
tar -cf archive.tar file_to_archive.txt
。為節省篇幅,以下多數使用傳統形式。
基本用法
操作模式
顯示用法與幫助
幾個相關選項與範例:
- -?, --help
- --usage
- --version
- --show-defaults
$ tar --help
建立/解開/列示tar檔
最常用的三個動作自然是建立、解開、列示tar封裝檔,這三個選項分別是:
- -c, --create
- -x, --extract, --get
- -t, --list
範例:
$ tar cf archive.tar file_or_folder_to_archive
$ tar xf archvie.tar
$ tar tf archive.tar
解開時也可指定只解開其中的幾個檔案:
$ tar xf archive.tar file1 file2
接合/附加/刪除/更新
- 接合:指把二個tar檔合併成另一個新的。壓縮格式的tar無法使用此功能。
- 附加:把指定的檔案或目錄加入即有的tar檔中。
- 刪除:刪除tar檔中指定的檔案或目錄。
- 更新:以指定檔案或目錄更新tar中的。
以上的選項分別是:
- -A, --catenate, --concatenate
- -r, --append
- --delete
- -u, --update
範例:
$ tar Af new_archive.tar archive1.tar archive2.tar
$ tar rf archvie.tar new_file
$ tar --delete f archive.tar file_to_delete_in_archive
$ tar uf archive.tar file_to_update
常用選項
幾個較常用選項如下:
- -f, --file=ARCHIVE:指定的tar檔案。檔名若是 - 則代表 stdout 或 stdio 。
- -v, --verbose:顯示處理的檔案。若想要更詳細的訊息,可重複指定使用此選項。
- -C, --directory=DIR:動作之前先變更目錄。這是有順序的,會影響其後的所有選項。
- -P, --absolute-names:建立封存時,保留前置的/(即使用絕對目錄)。
- -p, --preserve-permissions, --same-permissions:保留檔案權限的資訊(預設是superuser)
範例:
$ tar cvpPf archive.tar /etc
$ tar xvf archive.tar -C ~/my_folder/
壓縮選項
封存資料時也可指定壓縮格式,以下是較常見的選項與相對應的壓縮格式 (副檔名):
- -z, --gzip, --gunzip, --ungzip:gzip (.gz)
- -j, --bzip2:bzip2 (.bz, .bz2)
- -J, --xz:xz (.xz)
- 自動依副檔名來決定:a
前列表的前三種,以一般而言壓縮比是越後者越佳,但相對的也越耗時,其封存檔的副檔名像以下的形式:
- .tar.gz, .tgz
- .tar.bz, .tar.bz2, .tbz, .tbz2
- .tar.xz, .txz
範例:
$ tar cjf archive.tar.bz2 file_or_folder_to_archive
$ tar cavf archive.txz file_or_folder_to_archive
$ tar xjf archive.tar.bz2
參考與資源連結
- http://manpages.ubuntu.com/manpages/bionic/en/man1/tar.1.html
- https://www.gnu.org/software/tar/manual/
沒有留言:
張貼留言