如何在 Linux 中归档文件和目录 [Part 1]

在我们之前的教程中,我们讨论了如何 使用 gzip 和 bzip2 压缩和解压缩文件 程式。 今天,我们将学习如何在 Linux 中归档文件和目录。 归档和压缩不一样吗? 你们中的一些人可能经常认为这些术语指的是相同的含义。 但是,两者完全不同。 归档是将多个文件和目录(相同或不同大小)组合成一个文件的过程。 另一方面,压缩是减小文件或目录大小的过程。 归档通常用作系统备份的一部分或将数据从一个系统移动到另一个系统时。 希望您了解归档和压缩之间的区别。 现在,让我们进入主题。

内容

  1. 在 Linux 中归档文件和目录
    1. 使用 Tar 命令归档文件和目录
      1. 创建新档案
      2. 提取档案
      3. 创建 gzipped 和 bzipped 档案
      4. 一次创建多个目录和/或文件的存档
      5. 在创建档案时排除目录和/或文件
      6. 列出存档文件的内容而不提取它们
      7. 将文件附加到现有档案
        1. TL;博士

在 Linux 中归档文件和目录

归档文件和目录的最常见程序是:

  1. 柏油
  2. 压缩

这是一个很大的话题。 所以,我将分两部分发表这篇文章。 在第一部分中,我们将看到如何使用归档文件和目录 柏油 命令。

使用 Tar 命令归档文件和目录

柏油 是一个 Unix 命令,它代表 一个存档。 它用于将多个文件(相同或不同大小)组合或存储到一个文件中。 tar 实用程序有 4 种主要操作模式。

  1. C – 从文件或目录创建档案。
  2. X – 提取档案。
  3. r – 将文件附加到存档的末尾。
  4. – 列出档案的内容。

有关模式的完整列表,请参阅手册页。

创建新档案

出于本指南的目的,我将使用一个名为 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)。 例如,以下命令将给定的归档文件提取到 下载 目录。

$ tar xf ostechnix.tar -C Downloads/

或者,转到“下载”文件夹并解压缩其中的存档,如下所示。

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

有时您可能想要提取特定类型的文件。 例如,以下命令提取“.png”类型的文件。

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

创建 gzipped 和 bzipped 档案

默认情况下,Tar 创建的归档文件以 。柏油 延期。 此外,tar 命令可以与压缩实用程序结合使用 压缩包压缩包. 文件以 。柏油 扩展名是指普通的 tar 存档,文件以 压缩包 或者 .tgz 指一个 压缩包 存档,并且 tar 文件以 tar.bz2 或者 .tbz压缩包 分别存档。

首先,让我们 创建一个压缩包 档案:

$ tar czf ostechnix.tar.gz ostechnix/

或者,

$ tar czf ostechnix.tgz ostechnix/

在这里,我们使用 使用 gzip 压缩方法压缩存档的标志。

您可以使用 v 标记以在创建存档时查看进度。

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

这里, v 指冗长。

要从文件列表中创建 gzipped 存档:

$ 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 旗帜。

现在,让我们在当前目录中提取 bzipped 存档。 为此,我们这样做:

$ tar xjf ostechnix.tar.bz2

或者,将存档解压缩到其他目录:

$ tar xjf ostechnix.tar.bz2 -C Downloads

一次创建多个目录和/或文件的存档

这是 tar 命令的另一个最酷的功能。 要一次创建多个目录或文件的 gzip 压缩存档,请使用以下命令:

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

上面的命令将创建一个存档 下载, 文件 目录和 文件.odt 文件在 ostechnix 目录并将存档保存在当前工作目录中。

在创建档案时排除目录和/或文件

这在备份数据时非常有用。 您可以从备份中排除不重要的文件或目录。 这是哪里 – 排除 开关来帮忙。 例如,您要创建 /home 目录的存档,但不包括 Downloads、Documents、Pictures、Music 目录。

这是我们的做法。

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

上面的命令将为我的 $HOME 目录创建一个 gzip 压缩存档,不包括下载、文档、图片和音乐文件夹。 要创建 bzip 压缩文件,请替换 j 并在上面的示例中使用扩展名 .bz2。

列出存档文件的内容而不提取它们

要列出存档文件的内容,我们使用 旗帜。

$ 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 和一个名为 例子.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;博士

创建 tar 档案:

  • 普通存档: tar -cf archive.tar 文件 1 文件 2 文件 3
  • Gzipped tar 存档: tar -czf archive.tgz 文件 1 文件 2 文件 3
  • Bzipped tar 存档: tar -cjf archive.tbz 文件 1 文件 2 文件 3

提取 tar 档案:

  • 普通存档: tar -xf 存档.tar
  • Gzipped tar 存档: tar -xzf 存档.tgz
  • Bzipped tar 存档: tar -xjf 存档.tbz

我们刚刚介绍了 tar 命令的基本用法。 开始使用 tar 命令就足够了。 但是,如果您想了解更多详细信息,请参阅手册页。

$ man tar

而且,这就是现在的全部。 在下一部分中,我们将看到如何使用 Zip 实用程序归档文件和目录。

  • 如何在 Linux 中归档文件和目录——第 2 部分

归档文件和目录CLILinuxLinux 命令Tape Archivetar