Linux中國

在 Linux 中如何歸檔文件和目錄

在我們之前的教程中,我們討論了如何使用 gzip 和 bzip2 壓縮和解壓縮文件。在本教程中,我們將學習如何在 Linux 歸檔文件。歸檔和壓縮有什麼不同嗎?你們中的一些人可能經常認為這些術語有相同的含義。但是,這兩者完全不同。歸檔是將多個文件和目錄(相同或不同大小)組合成一個文件的過程。另一方面,壓縮是減小文件或目錄大小的過程。歸檔通常用作系統備份的一部分,或者將數據從一個系統移至另一個系統時。希望你了解歸檔和壓縮之間的區別。現在,讓我們進入主題。

歸檔文件和目錄

歸檔文件和目錄最常見的程序是:

  1. tar
  2. zip

這是一個很大的話題,所以,我將分兩部分發表這篇文章。在第一部分中,我們將看到如何使用 tar 命令來歸檔文件和目錄。

使用 tar 命令歸檔文件和目錄

Tar 是一個 Unix 命令,代表 Tape Archive(磁帶歸檔)。它用於將多個文件(相同或不同大小)組合或存儲到一個文件中。在 tar 實用程序中有 4 種主要的操作模式。

  1. c – 從文件或目錄中建立歸檔
  2. x – 提取歸檔
  3. r – 將文件追加到歸檔
  4. t – 列出歸檔的內容

有關完整的模式列表,參閱 man 手冊頁。

創建一個新的歸檔

為了本指南,我將使用名為 ostechnix 的文件夾,其中包含三種不同類型的文件。

$ ls ostechnix/
file.odt image.png song.mp3

現在,讓我們為 ostechnix 目錄創建一個新的 tar 歸檔。

$ tar cf ostechnix.tar ostechnix/

這裡,c 標誌指的是創建新的歸檔,f 是指定歸檔文件。

同樣,對當前工作目錄中的一組文件創建歸檔文件,使用以下命令:

$ tar cf archive.tar file1 file2 file 3

提取歸檔

要在當前目錄中提取歸檔文件,只需執行以下操作:

$ tar xf ostechnix.tar

我們還可以使用 C 標誌(大寫字母 C)將歸檔提取到不同的目錄中。例如,以下命令將歸檔文件提取到 Downloads 目錄中。

$ tar xf ostechnix.tar -C Downloads/

或者,轉到 Downloads 文件夾並像下面一樣提取其中的歸檔。

$ cd Downloads/
$ tar xf ../ostechnix.tar

有時,你可能想要提取特定類型的文件。例如,以下命令提取 「.png」 類型的文件。

$ tar xf ostechnix.tar --wildcards "*.png"

創建 gzip 和 bzip 格式的壓縮歸檔

默認情況下,tar 創建歸檔文件以 .tar 結尾。另外,tar 命令可以與壓縮實用程序 gzipbzip 結合使用。文件結尾以 .tar 為擴展名使用普通 tar 來歸檔文件,文件以 tar.gz.tgz 結尾使用 gzip 歸檔並壓縮文件,文件以 tar.bz2.tbz 結尾使用 bzip 歸檔並壓縮。

首先,讓我們來創建一個 gzip 歸檔:

$ tar czf ostechnix.tar.gz ostechnix/

或者:

$ tar czf ostechnix.tgz ostechnix/

這裡,我們使用 z 標誌來使用 gzip 壓縮方法壓縮歸檔文件。

你可以使用 v 標誌在創建歸檔時查看進度。

$ tar czvf ostechnix.tar.gz ostechnix/
ostechnix/
ostechnix/file.odt
ostechnix/image.png
ostechnix/song.mp3

這裡,v 指顯示進度。

從一個文件列表創建 gzip 歸檔文件:

$ tar czf archive.tgz file1 file2 file3

要提取當前目錄中的 gzip 歸檔文件,使用:

$ tar xzf ostechnix.tgz

要提取到其他文件夾,使用 -C 標誌:

$ tar xzf ostechnix.tgz -C Downloads/

現在,讓我們創建 bzip 歸檔。為此,請使用下面的 j 標誌。

創建一個目錄的歸檔:

$ tar cjf ostechnix.tar.bz2 ostechnix/

$ tar cjf ostechnix.tbz ostechnix/

從一個列表文件中創建歸檔:

$ tar cjf archive.tar.bz2 file1 file2 file3

$ tar cjf archive.tbz file1 file2 file3

為了顯示進度,使用 v 標誌。

現在,在當前目錄下,讓我們提取一個 bzip 歸檔。這樣做:

$ tar xjf ostechnix.tar.bz2

或者,提取歸檔文件到其他目錄:

$ tar xjf ostechnix.tar.bz2 -C Downloads

一次創建多個目錄和/或文件的歸檔

這是 tar 命令的另一個最酷的功能。要一次創建多個目錄或文件的 gzip 歸檔文件,使用以下文件:

$ tar czvf ostechnix.tgz Downloads/ Documents/ ostechnix/file.odt

上述命令創建 DownloadsDocuments 目錄和 ostechnix 目錄下的 file.odt 文件的歸檔,並將歸檔保存在當前工作目錄中。

在創建歸檔時跳過目錄和/或文件

這在備份數據時非常有用。你可以在備份中排除不重要的文件或目錄,這是 –exclude 選項所能幫助的。例如你想要創建 /home 目錄的歸檔,但不希望包括 DownloadsDocumentsPicturesMusic 這些目錄。

這是我們的做法:

$ tar czvf ostechnix.tgz /home/sk --exclude=/home/sk/Downloads --exclude=/home/sk/Documents --exclude=/home/sk/Pictures --exclude=/home/sk/Music

上述命令將對我的 $HOME 目錄創建一個 gzip 歸檔,其中不包括 DownloadsDocumentsPicturesMusic 目錄。要創建 bzip 歸檔,將 z 替換為 j,並在上例中使用擴展名 .bz2

列出歸檔文件但不提取它們

要列出歸檔文件的內容,我們使用 t 標誌。

$ tar tf ostechnix.tar
ostechnix/
ostechnix/file.odt
ostechnix/image.png
ostechnix/song.mp3

要查看詳細輸出,使用 v 標誌。

$ tar tvf ostechnix.tar
drwxr-xr-x sk/users 0 2018-03-26 19:52 ostechnix/
-rw-r--r-- sk/users 9942 2018-03-24 13:49 ostechnix/file.odt
-rw-r--r-- sk/users 36013 2015-09-30 11:52 ostechnix/image.png
-rw-r--r-- sk/users 112383 2018-02-22 14:35 ostechnix/song.mp3

追加文件到歸檔

文件或目錄可以使用 r 標誌添加/更新到現有的歸檔。看看下面的命令:

$ tar rf ostechnix.tar ostechnix/ sk/ example.txt

上面的命令會將名為 sk 的目錄和名為 exmple.txt 添加到 ostechnix.tar 歸檔文件中。

你可以使用以下命令驗證文件是否已添加:

$ tar tvf ostechnix.tar
drwxr-xr-x sk/users 0 2018-03-26 19:52 ostechnix/
-rw-r--r-- sk/users 9942 2018-03-24 13:49 ostechnix/file.odt
-rw-r--r-- sk/users 36013 2015-09-30 11:52 ostechnix/image.png
-rw-r--r-- sk/users 112383 2018-02-22 14:35 ostechnix/song.mp3
drwxr-xr-x sk/users 0 2018-03-26 19:52 sk/
-rw-r--r-- sk/users 0 2018-03-26 19:39 sk/linux.txt
-rw-r--r-- sk/users 0 2018-03-26 19:56 example.txt

TL;DR

創建 tar 歸檔:

  • 普通 tar 歸檔: tar -cf archive.tar file1 file2 file3
  • Gzip tar 歸檔: tar -czf archive.tgz file1 file2 file3
  • Bzip tar 歸檔: tar -cjf archive.tbz file1 file2 file3

提取 tar 歸檔:

  • 普通 tar 歸檔: tar -xf archive.tar
  • Gzip tar 歸檔: tar -xzf archive.tgz
  • Bzip tar 歸檔: tar -xjf archive.tbz

我們只介紹了 tar 命令的基本用法,這些對於開始使用 tar 命令足夠了。但是,如果你想了解更多詳細信息,參閱 man 手冊頁。

$ man tar

好吧,這就是全部了。在下一部分中,我們將看到如何使用 Zip 實用程序來歸檔文件和目錄。

乾杯!

via: https://www.ostechnix.com/how-to-archive-files-and-directories-in-linux-part-1/

作者:SK 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國