UNIX 和 Linux 中 tar 命令的 11 个示例
UNIX 或 Linux 中的 tar
命令是在 UNIX 中提供归档功能的重要命令之一。 我们可以使用 UNIX tar
命令通过 gzip 或 bzip2 创建压缩或未压缩的归档文件。 在此 UNIX tar
命令教程中,我们将看到与基本归档任务相关的 UNIX tar 命令示例,例如 如何在 Unix 和 Linux 中创建 tar 存档,如何在 UNIX 中从 tar 存档中提取文件,如何在 Unix 和 Linux 中查看 tar 文件的内容或如何在 Unix 中更新现有的 tar 文件。
UNIX 中的 tar 命令示例保持简单易懂,并掌握使用 UNIX tar 命令的每个基本任务。
好的,现在介绍得够多了,让我们看看 Unix 和 Linux 中 tar 命令的一些真实示例:
如何在 Unix 中使用 tar 命令
在 UNIX 中使用 tar 命令很简单,它的语法与任何其他 UNIX 命令相似。 以下是 UNIX 中 tar 命令的语法:
tar [options] [name of the tar file to be created] [list of files and directories to be included]
此 tar
命令的语法是为了便于理解,我们也可以在 UNIX 机器上使用命令 tar --usage
查看详细语法。
Linux 中的 tar 命令示例
现在,让我们看看 Linux 中用于实现文件和目录的 tar 命令的一些实际示例。
1. Unix tar 命令行选项
在 UNIX tar 命令教程的这一部分中,我们将看到 Linux 中 tar 命令的一些有用选项,我们将在示例中使用这些选项来了解此选项与 tar 命令的用法。
- c -- 创建,用于创建 tar 文件
- v -- verbose,tar 命令中包括、排除的文件的显示名称
- f -- 下面,用于指向要创建的 tar 文件的名称。 它实际上告诉 tar 命令文件的名称是选项之后的“下一个”字母。
- x -- extract,用于从 tar 文件中提取文件。
- t -- 用于查看 tar 文件的内容
- z -- zip,告诉 tar 命令使用 gzip 创建 tar 文件。
- j – 另一个压缩选项告诉 tar 命令使用 bzip2 进行压缩
- r -- 在已存在的 .tar 文件中更新或添加文件或目录
- 通配符——在 Unix tar 命令中指定模式
2. 如何在 Unix 中创建 tar 存档或 tar 文件
大多数人在 Windows 机器上使用 WinZip 或 WinRAR 来压缩或创建内容存档,因此当我们转向 Unix 或 Linux 等命令行界面时,我们在没有这些工具的情况下苦苦挣扎。 UNIX tar 命令类似于 WinZip 或 WinRAR,我们可以使用 UNIX tar 命令在 UNIX 中创建压缩或未压缩(压缩)存档。
在这个 tar 命令示例中,我们将创建一个包含 Unix 中所有文件和目录或选定文件和目录的 tar 文件。
$ ls -lrt
total 0
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 15:30 currency
它有两个文件和一个目录。 现在我们将创建一个包含所有这些内容的 tar 文件。
$ tar -cvf trading.tar *
currency
equity
stocks/
stocks/online_stock_exchanges.txt
我们会看到 unix tar 命令正在创建名为“trading”的 tar 文件,其内容如上所示。 只是回顾一下 -c
用于创建 tar 文件“v”用于冗长而“f”用于告诉 tar 文件名。 你可以在这里看到 tar 文件
$ ls -lrt
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 15:30 currency
-rw-r--r-- 1 stock_trader Domain Users 10K Jul 18 12:29 trading.tar
3.如何在Unix或Linux下查看tar文件的内容
在 Unix 或 Linux 中 tar 命令的早期示例中,我们创建了一个名为“trading.tar”的未压缩 tar 文件,现在在这个示例中我们将看到该 tar 文件的实际内容。
$ tar -tvf trading.tar
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 15:30 currency
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 11:42 equity
drwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/
-rwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/online_stock_exchanges.txt
这里选项“t”用于在 UNIX 中显示 tar 文件的内容,而选项“v”和“f”用于“verbose”和“following”。 现在我们可以清楚地看到我们想要包含在 tar 文件中的所有文件都在那里。
- 如何从 Unix 中的 tar 文件中提取内容 在这个 UNIX tar 命令示例中,我们将看到如何在 UNIX 或 Linux 中从 tar 文件中提取文件或目录。 我们将使用在前面示例中创建的相同 trading.tar 文件。
$ ls -lrt
total 12K
-rw-r--r-- 1 stock_trader Domain Users 10K Jul 18 12:37 trading.tar
现在目录是空的,只有 trading.tar
文件
$ tar -xvf trading.tar
currency
equity
stocks/
stocks/online_stock_exchanges.txt
此 UNIX tar 命令将在当前目录中提取 trading.tar 的内容。 “x”用于提取。 在我们所有的示例中,“v”再次代表一个冗长的可选参数。
$ ls -lrt
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxr-xr-x+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 15:30 currency
-rw-r--r-- 1 stock_trader Domain Users 10K Jul 18 12:37 trading.tar
现在我们可以看到 tar 文件中包含的所有文件和目录(stocks、equity和currency )都已成功提取。
5. 如何在 Unix 中创建只包含指定内容的 tar 文件
在上面的 unix 中的 tar 命令示例中,我们创建了包含当前目录中所有可用内容的 tar 文件,但我们也可以创建具有选择性内容的 tar 文件,如上例所示。
现在在我们的当前目录中,我们有文件和目录,我们只想在我们的 tar 文件中包含两个文件 equity 和 currency。
$ ls -lrt
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 15:30 currency
-rw-r--r-- 1 stock_trader Domain Users 10K Jul 18 12:29 trading.tar
drwxr-xr-x+ 1 stock_trader Domain Users 0 Jul 18 12:46 new/
$ tar -cvf equitytrading.tar equity currency
equity
currency
大家看到我们的 tar 文件中只包含两个文件 equity 和 currency。
6. 如何在 Unix 中使用 gzip 创建压缩的 tar 文件
在我们之前的 Linux tar 命令示例中,我们创建了一个未压缩的 tar 文件,但大多数时候我们还需要使用 gzip 或 bzip2 创建压缩的 tar 文件。 在这个 Linux 中的 tar 命令示例中,我们将学习如何使用 gzip 创建 tar 文件。
$ tar -zcvf trading.tgz *
currency
equity
stocks/
stocks/online_stock_exchanges.txt
大家会看到使用 gzip 创建 tar 文件非常简单,只需使用“-z”选项,它就会创建一个 gzip tar。 .tgz 或 tar.gz 扩展名用于表示带有 gzip 的 tar 文件。 压缩的 tar 文件的大小远小于未压缩的文件。
$ ls -lrt
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 15:30 currency
-rw-r--r-- 1 stock_trader Domain Users 219 Jul 18 13:01 trading.tgz
我们还可以使用前面的命令结合“z”选项查看 gzip tar
文件的内容,从 gzip tar
中提取内容也是如此。 下面的 unix tar 命令示例将展示如何在 unix 中查看 .tgz 或 .tar.gz 文件的内容。
$ tar -ztvf trading.tgz
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 15:30 currency
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 11:42 equity
drwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/
-rwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/online_stock_exchanges.txt
同样,我们可以从 .tgz
或 .tar.gz
文件中提取内容,如下面的 unix tar 命令示例所示:
$ tar -zxvf trading.tgz
currency
equity
stocks/
stocks/online_stock_exchanges.txt
$ ls -lrt
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxr-xr-x+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r-- 1 stock_trader Domain Users 0 Jul 15 15:30 currency
-rw-r--r-- 1 stock_trader Domain Users 219 Jul 18 13:07 trading.tgz
7. 如何在 Unix 中使用 bzip2 创建压缩的 tar 文件
bzip2
是我们拥有的另一个压缩选项,我们可以将其与 unix tar 命令一起使用。 它与我们之前使用 gzip 压缩的选项完全相似,但我们需要使用“j”tar 选项而不是“z”选项来创建 bzip2 文件,如下面的 unix 中的 tar 命令示例所示。
$ tar -jcvf trading.tar.bz2 *
currency
equity
stocks/
stocks/online_stock_exchanges.txt
$ ls -lrt trading.tar.bz2
-rw-r--r-- 1 stock_trader Domain Users 593 Jul 18 13:11 trading.tar.bz2
.tar.bz2
用于表示使用 bzip2 压缩的 tar 文件。 要查看 bzip2 tar
文件的内容和提取内容,我们可以使用带有 gzip 压缩的 UNIX tar 命令示例所示,只需将 bzip2 的“-z”替换为“-j”即可。
8. 如何从 .tar、.tar.gz 或 .tar.bzip2 中提取特定文件
在前面从 tar 文件中提取内容的示例中,我们已经提取了所有内容。 有时我们只需要 tar 文件中的特定文件。 在这个 unix tar 命令示例中,我们将从 tar 存档中提取特定文件。
$ tar -jxvf trading.tar.bz2 equity
equity
在这种情况下,它只是简单地指定文件名,即它的“equity”。 如果我们的 tar 文件是 gzip 文件,那么使用 -z
就可以了。 我们还可以将 grep 和 find 命令与 tar 结合使用以获得更多动态使用。
9. 如何在 UNIX 中从 .tar、.tar.gz 或 .tar.bzip2 格式中提取文件组或目录
我们可以通过指定匹配模式并使用选项 --wildcards
在 Unix 中提取一组文件形式的 .tar、.tar.gz 或 .tar.bzip2。 让我们举一个 unix 中带有 --wildcards
的 tar 命令的例子
$ tar -jxvf trading.tar.bz2 --wildcards "s*"
stocks/
stocks/online_stock_exchanges.txt
在上面的 UNIX tar 命令示例中,我们正在提取名称以“s”开头的所有文件或目录。
10. 如何在 Linux 中更新现有的 tar 文件
我们还可以在已创建的 tar 文件中更新或附加新文件。 选项“-r”用于此。 让我们看一个在 UNIX 中使用 tar 命令更新 tar 文件的示例:
$ tar -cvf sample.tar equity currency
equity
currency
$ tar -rvf sample.tar gold
gold
$ tar -tvf sample.tar
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 11:42 equity
-r--r--r-- stock_trader/Domain Users 221 2011-07-18 13:10 currency
-rw-r--r-- stock_trader/Domain Users 0 2011-07-18 13:30 gold
显然无法更新压缩存档。如果我们尝试这样做,将收到错误“tar: Cannot update compressed archives”。
11. 在 UNIX 中计算 tar 文件的大小
有时在创建 tar 文件之前知道它的大小很有用,我们可以使用 UNIX tar 命令获取它,如下例所示:
$ tar -cf - * | wc -c
20480
此处显示的大小以 KB 为单位,我们还可以使用 z
代表 gzip,j
代表 bzip2 来计算压缩的 tar 文件的大小
这就是 UNIX 或 Linux 中 tar 命令的 11 个示例系列的全部内容。 如果你们有其他一些关于 UNIX tar 命令的好例子,欢迎与我们分享。
相关文章
在 Linux 中安装 MySQL 客户端
发布时间:2023/05/09 浏览次数:72 分类:MySQL
-
在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Linux 中计算文件中的唯一行
发布时间:2023/05/04 浏览次数:70 分类:操作系统
-
计算文件中的唯一行是 Linux 中的一项常见任务,可以使用多种不同的工具和方法来执行此操作。使用 sort 和 uniq 命令计算文件中的唯一行数