如何在Linux上使用tarball?
“tarball” (LCTT 譯注:國(guó)內(nèi)也常稱為“tar 包”)一詞通常用于描述備份一組選擇的文件并將它們打包在一個(gè)文件中的一種文件格式。該名稱來(lái)自 .tar 文件擴(kuò)展名和 tar
命令,它用于將文件打包到一個(gè)文件中,有時(shí)還會(huì)壓縮該文件,使其在移動(dòng)到其它系統(tǒng)時(shí)更小。
tarball 通常用于備份個(gè)人或系統(tǒng)文件來(lái)創(chuàng)建存檔,特別是在進(jìn)行可能需要撤消的更改之前。例如,Linux 系統(tǒng)管理員通常會(huì)在更改應(yīng)用之前創(chuàng)建包含一系列配置文件的 tarball,以防必須撤消這些更改。從 tarball 中解壓文件通常比在備份中搜索文件快。
如何在 Linux 上創(chuàng)建 tarball
使用如下命令,你可以在單條命令中創(chuàng)建 tarball 并壓縮它。
$ tar -cvzf PDFs.tar.gz *.pdf
其結(jié)果是一個(gè)壓縮文件(gzip 壓縮的),其中包含了當(dāng)前目錄中的所有 PDF 文件。當(dāng)然,壓縮是可選的。一個(gè)稍微簡(jiǎn)單的只是將 PDF 文件打包成未壓縮 tarball 的命令:
$ tar -cvf PDFs.tar *.pdf
注意,選項(xiàng)中的 z
將文件變成壓縮的。 c
表明創(chuàng)建文件,v
(詳細(xì))表示你在命令運(yùn)行時(shí)需要一些反饋。如果你不想查看列出的文件,請(qǐng)忽略 v
。
另一個(gè)常見(jiàn)的命名約定是給壓縮的 tarball 命名成 .tgz 而不是雙擴(kuò)展名 .tar.gz,如下所示:
$ tar cvzf MyPDFs.tgz *.pdf
如何從 tarball 中解壓文件
要從 gzip 壓縮包中解壓所有文件,你可以使用如下命令:
$ tar -xvzf file.tar.gz
如果使用 .tgz 命名約定,該命令將如下所示:
$ tar -xvzf MyPDFs.tgz
要從 gzip 包中解壓?jiǎn)蝹€(gè)文件,你可以執(zhí)行幾乎相同的操作,只需添加文件名:
$ tar -xvzf PDFs.tar.gz ShenTix.pdf
ShenTix.pdf
ls -l ShenTix.pdf
-rw-rw-r-- 1 shs shs 122057 Dec 14 14:43 ShenTix.pdf
如果未壓縮 tarball,你甚至可以從 tarball 中刪除文件。例如,如果我們想從 PDFs.tar.gz 中刪除我們上面解壓過(guò)的文件,我們會(huì)這樣做:
$ gunzip PDFs.tar.gz
$ ls -l PDFs.tar
-rw-rw-r-- 1 shs shs 10700800 Dec 15 11:51 PDFs.tar
$ tar -vf PDFs.tar --delete ShenTix.pdf
$ ls -l PDFs.tar
-rw-rw-r-- 1 shs shs 10577920 Dec 15 11:45 PDFs.tar
請(qǐng)注意,我們?cè)趧h除 ShenTix.pdf 后,縮小了一點(diǎn) tarball 文件占用的空間。如果我們想要,我們可以再次壓縮文件:
$ gzip -f PDFs.tar
ls -l PDFs.tar.gz
-rw-rw-r-- 1 shs shs 10134499 Dec 15 11:51 PDFs.tar.gzFlickr / James St. John
豐富的命令行選項(xiàng)使得 tarball 使用起來(lái)簡(jiǎn)單方便。