如何在 Linux 中創(chuàng)建和管理歸檔文件

如何在 Linux 中創(chuàng)建和管理歸檔文件

簡而言之,歸檔是一個包含一系列文件和(或)目錄的單一文件慨蓝。歸檔文件通常用于在本地或互聯(lián)網(wǎng)上傳輸覆山,或作為一個一系列文件和目錄的備份副本竹伸,從而允許你使用一個文件來工作(如果壓縮,則其大小會小于所有文件的總和)簇宽。同樣的勋篓,歸檔也用于軟件應用程序打包。為了方便傳輸魏割,可以很容易地壓縮這個單一文件譬嚣,而存檔中的文件會保留原始結(jié)構(gòu)和權(quán)限。

我們可以使用 tar 工具來創(chuàng)建钞它、列出和提取歸檔中的文件拜银。用 tar 生成的歸檔通常稱為“tar 文件”殊鞭、“tar 歸檔”或者“壓縮包”(因為所有已歸檔的文件被合成了一個文件)。

本教程會展示如何使用 tar 創(chuàng)建尼桶、列出和提取歸檔中的內(nèi)容操灿。這三個操作都會使用兩個公共選項 -f-v:使用 -f 指定歸檔文件的名稱,使用 -v(“冗余”)選項使 tar 在處理文件時輸出文件名泵督。雖然 -v 選項不是必需的趾盐,但是它可以讓你觀察 tar 操作的過程。

在本教程的下面部分中小腊,會涵蓋 3 個主題:1救鲤、創(chuàng)建一個歸檔文件;2秩冈、列出歸檔文件內(nèi)容蜒简;3、提取歸檔文件內(nèi)容漩仙。另外我們會回答歸檔文件管理的 6 個實際問題來結(jié)束本教程搓茬。你從本教程學到的內(nèi)容對于執(zhí)行與網(wǎng)絡安全云技術(shù)相關的任務至關重要。

1队他、創(chuàng)建一個歸檔文件

要使用 tar 創(chuàng)建一個歸檔文件卷仑,使用 -c(“創(chuàng)建”)選項,然后用 -f 選項指定要創(chuàng)建的歸檔文件名麸折。通常的做法是使用帶有 .tar 擴展名的名稱锡凝,例如 my-backup.tar。注意垢啼,除非另有特別說明窜锯,否則本文其余部分中使用的所有命令和參數(shù)都以小寫形式使用。記住芭析,在你的終端上輸入本文的命令時锚扎,無需輸入每個命令行開頭的 $ 提示符。

輸入要歸檔的文件名作為參數(shù)馁启;如果要創(chuàng)建一個包含所有文件及其子目錄的歸檔文件驾孔,提供目錄名稱作為參數(shù)盗痒。

要歸檔 project 目錄內(nèi)容歪赢,輸入:

  1. $ tar -cvf project.tar project

這個命令將創(chuàng)建一個名為 project.tar 的歸檔文件廉丽,包含 project 目錄的所有內(nèi)容舍扰,而原目錄 project 將保持不變篮条。

使用 -z 選項可以對歸檔文件進行壓縮辞友,這樣產(chǎn)生的輸出與創(chuàng)建未壓縮的存檔然后用 gzip 壓縮是一樣的帝璧,但它省去了額外的步驟滥壕。

要從 project 目錄創(chuàng)建一個 project.tar.gz 的壓縮包蒿偎,輸入:

  1. $ tar -zcvf project.tar.gz project

這個命令將創(chuàng)建一個 project.tar.gz 的壓縮包朽们,包含 project 目錄的所有內(nèi)容克伊,而原目錄 project 將保持不變。

注意: 在使用 -z 選項時华坦,你應該使用 .tar.gz 擴展名而不是 .tar 擴展名愿吹,這樣表示已壓縮。雖然不是必須的惜姐,但這是一個很好的實踐犁跪。

gzip 不是唯一的壓縮形式,還有 bzip2 和 xz歹袁。當我們看到擴展名為 .xz 的文件時坷衍,我們知道該文件是使用 xz 壓縮的,擴展名為 .bz2 的文件是用 bzip2 壓縮的条舔。隨著 bzip2 不再維護枫耳,我們將遠離它而關注 xz。使用 xz 壓縮時孟抗,需要花費更長的時間迁杨。然而,等待通常是值得的凄硼,因為壓縮效果要好的多铅协,這意味著壓縮包通常比使用其它壓縮形式要小。更好的是摊沉,不同壓縮形式之間的解壓縮或提取文件并沒有太大區(qū)別狐史。下面我們將看到一個使用 tar 壓縮文件時如何使用 xz 的示例:

  1. $ tar -Jcvf project.tar.xz project

我們只需將 gzip-z 選項轉(zhuǎn)換為 xz 的大寫 -J 即可。以下是一些輸出说墨,顯示壓縮形式之間的差異:

image
image

如你所見骏全,xz 的壓縮時間最長。但是尼斧,它在減小文件大小方面做的最好姜贡,所以值得等待。文件越大突颊,壓縮效果也越好鲁豪。

2潘悼、列出歸檔文件的內(nèi)容

要列出 tar 歸檔文件的內(nèi)容但不提取律秃,使用 -t 選項。

要列出 project.tar 的內(nèi)容治唤,輸入:

  1. $ tar -tvf project.tar

這個命令列出了 project.tar 歸檔的內(nèi)容棒动。-v-t 選項一起使用會輸出每個文件的權(quán)限和修改時間,以及文件名宾添。這與 ls 命令使用 -l 選項時使用的格式相同船惨。

要列出 project.tar.gz 壓縮包的內(nèi)容柜裸,輸入:

  1. $ tar -tzvf project.tar.gz

3粱锐、從歸檔中提取內(nèi)容

要提攘场(解壓)tar 歸檔文件中的內(nèi)容恶座,使用 -x(“提取”)選項。

要提取 project.tar 歸檔的內(nèi)容自点,輸入:

  1. $ tar -xvf project.tar

這個命令會將 project.tar 歸檔的內(nèi)容提取到當前目錄桂敛。

如果一個歸檔文件被壓縮溅潜,通常來說它的擴展名為 .tar.gz.tgz伟恶,請包括 “-z” 選項博秫。

要提取 project.tar.gz 壓縮包的內(nèi)容,輸入:

  1. $ tar -zxvf project.tar.gz

注意: 如果當前目錄中有文件或子目錄與歸檔文件中的內(nèi)容同名巴碗,那么在提取歸檔文件時橡淆,這些文件或子目錄將被覆蓋逸爵。如果你不知道歸檔中包含哪些文件凹嘲,請考慮先查看歸檔文件的內(nèi)容周蹭。

在提取歸檔內(nèi)容之前列出其內(nèi)容的另一個原因是,確定歸檔中的內(nèi)容是否包含在目錄中显拳。如果沒有搓萧,而當前目錄中包含許多不相關的文件矛绘,那么你可能將它們與歸檔中提取的文件混淆货矮。

要將文件提取到它們自己的目錄中,新建一個目錄喧锦,將歸檔文件移到該目錄燃少,然后你就可以在新目錄中提取文件阵具。

FAQ

現(xiàn)在我們已經(jīng)學習了如何創(chuàng)建歸檔文件并列出和提取其內(nèi)容定铜,接下來我們可以繼續(xù)討論 Linux 專業(yè)人員經(jīng)常被問到的 9 個實用問題揣炕。

可以在不解壓縮的情況下添加內(nèi)容到壓縮包中嗎畸陡?

很不幸,一旦文件將被壓縮曹动,就無法向其添加內(nèi)容仁期。你需要解壓縮或提取其內(nèi)容竭恬,然后編輯或添加內(nèi)容痊硕,最后再次壓縮文件。如果文件很小理逊,這個過程不會花費很長時間晋被,否則請等待一會羡洛。

可以在不解壓縮的情況下刪除歸檔文件中的內(nèi)容嗎欲侮?

這取決壓縮時使用的 tar 版本威蕉。較新版本的 tar 支持 -delete 選項韧涨。

例如氓奈,假設歸檔文件中有 file1file2舀奶,可以使用以下命令將它們從 file.tar 中刪除:

  1. $ tar -vf file.tar –delete file1 file2

刪除目錄 dir1

  1. $ tar -f file.tar –delete dir1/*

壓縮和歸檔之間有什么區(qū)別育勺?

查看歸檔和壓縮之間差異最簡單的方法是查看其解壓大小涧至。歸檔文件時南蓬,會將多個文件合并為一個赘方。所以窄陡,如果我們歸檔 10 個 100kb 文件跳夭,則最終會得到一個 100kb 大小的文件币叹。而如果壓縮這些文件,則最終可能得到一個只有幾 kb 或接近 100kb 的文件颈抚。

如何壓縮歸檔文件九妈?

如上所說雾鬼,你可以使用帶有 cvf 選項的 tar 命令來創(chuàng)建和歸檔文件晶疼。要壓縮歸檔文件翠霍,有兩個選擇:通過壓縮程序(例如 gzip)運行歸檔文件寒匙,或在使用 tar 命令時使用壓縮選項锄弱。最常見的壓縮標志 -z 表示 gzip-j 表示 bzip祸憋,-J 表示 xz会宪。例如:

  1. $ gzip file.tar

或者,我們可以在使用 tar 命令時使用壓縮標志蚯窥,以下命令使用 gzip 標志 z

  1. $ tar -cvzf file.tar /some/directory

如何一次創(chuàng)建多個目錄和/或文件的歸檔掸鹅?

一次要歸檔多個文件塞帐,這種情況并不少見。一次歸檔多個文件和目錄并不像你想的那么難巍沙,你只需要提供多個文件或目錄作為 tar 的參數(shù)即可:

  1. $ tar -cvzf file.tar file1 file2 file3

或者

  1. $ tar -cvzf file.tar /some/directory1 /some/directory2

創(chuàng)建歸檔時如何跳過目錄和/或文件葵姥?

你可能會遇到這樣的情況:要歸檔一個目錄或文件,但不是所有文件赎瞎,這種情況下可以使用 --exclude 選項:

  1. $ tar –exclude ‘/some/directory’ -cvf file.tar /home/user

在示例中牌里,/home/user 目錄中除了 /some/directory 之外都將被歸檔喳篇。將 --exclude 選項放在源和目標之前炊邦,并用單引號將要排除的文件或目錄引起來,這一點很重要。

總結(jié)

tar 命令對展示不需要的文件創(chuàng)建備份或壓縮文件很有用。在更改文件之前備份它們是一個很好的做法。如果某些東西在更改后沒有按預期正常工作,你始終可以還原到舊文件。壓縮不再使用的文件有助于保持系統(tǒng)干凈,并降低磁盤空間使用率沼侣。還有其它實用程序可以歸檔或壓縮轧膘,但是 tar 因其多功能、易用性和受歡迎程度而獨占鰲頭熔任。

資源

如果你想了解有關 Linux 的更多信息夯巷,強烈建議閱讀以下文章和教程:

關于作者

Matt Zand 是一位創(chuàng)業(yè)者,也是 3 家科技創(chuàng)業(yè)公司的創(chuàng)始人: DC Web MakersCoding BootcampsHigh School Technology Services梳码。他也是 使用 Hyperledger Fabric 進行智能合約開發(fā) 一書的主要作者濒蒋。他為 Hyperledger焰坪、以太坊和 Corda R3 平臺編寫了 100 多篇關于區(qū)塊鏈開發(fā)的技術(shù)文章和教程。在 DC Web Makers,他領導了一個區(qū)塊鏈專家團隊,負責咨詢和部署企業(yè)去中心化應用程序送淆。作為首席架構(gòu)師阐斜,他為編碼訓練營設計和開發(fā)了區(qū)塊鏈課程和培訓項目。他擁有馬里蘭大學工商管理碩士學位唧喉。在區(qū)塊鏈開發(fā)和咨詢之前,他曾擔任一些初創(chuàng)公司的高級網(wǎng)頁和移動應用程序開發(fā)和顧問忍抽、天使投資人和業(yè)務顧問鸠项。你可以通過以下這個網(wǎng)址和他取得聯(lián)系: https://www.linkedin.com/in/matt-zand-64047871

Kevin Downs 是 Red Hat 認證的系統(tǒng)管理員和 RHCSA讲坎。他目前在 IBM 擔任系統(tǒng)管理員鲸郊,負責管理數(shù)百臺運行在不同 Linux 發(fā)行版上的服務器喳资。他是編碼訓練營的首席 Linux 講師,并且他會講授 5 個自己的課程腾供。


via: https://www.linux.com/news/how-to-create-and-manage-archive-files-in-linux-2/

作者:LF Training 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創(chuàng)編譯仆邓,Linux中國 榮譽推出

轉(zhuǎn)自 https://linux.cn/article-13126-1.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伴鳖,隨后出現(xiàn)的幾起案子节值,更是在濱河造成了極大的恐慌,老刑警劉巖榜聂,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搞疗,死亡現(xiàn)場離奇詭異,居然都是意外死亡须肆,警方通過查閱死者的電腦和手機匿乃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來休吠,“玉大人扳埂,你說我怎么就攤上這事×鼋福” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵梅尤,是天一觀的道長柜思。 經(jīng)常有香客問我,道長巷燥,這世上最難降的妖魔是什么赡盘? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮缰揪,結(jié)果婚禮上陨享,老公的妹妹穿的比我還像新娘。我一直安慰自己钝腺,他們只是感情好抛姑,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艳狐,像睡著了一般定硝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毫目,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天蔬啡,我揣著相機與錄音诲侮,去河邊找鬼。 笑死箱蟆,一個胖子當著我的面吹牛沟绪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播空猜,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼近零,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抄肖?” 一聲冷哼從身側(cè)響起久信,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漓摩,沒想到半個月后裙士,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡管毙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年腿椎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夭咬。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡啃炸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出卓舵,到底是詐尸還是另有隱情南用,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布掏湾,位于F島的核電站裹虫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏融击。R本人自食惡果不足惜筑公,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尊浪。 院中可真熱鬧匣屡,春花似錦、人聲如沸拇涤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽工育。三九已至虾宇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間如绸,已是汗流浹背嘱朽。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工旭贬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搪泳。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓稀轨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親岸军。 傳聞我的和親對象是個殘疾皇子奋刽,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容