我当时正在听Ell Marquez在 Linux Fest North West上发表的演讲,在她演讲的开始部分,有一段漫画。漫画中说,要拆除炸弹,你必须能够输入 TAR 命令,而无需谷歌搜索。当然,它们都注定要失败。既然我们已经介绍了一些可以用AWK和SED以及导航和事件指示符来实现的酷技巧,那么这一次,我们将确保你在使用Tape ARchive命令时能够拯救世界。如果你熟悉 ZIP,那么你也会熟悉 TAR。基本上,它用于将文件归档到一个希望较小的文件中。有时你会听到它们被称为“tarball”。
弄清楚 TAR 档案里有什么
因此,通常情况下,当您获得“tarball”时,您会去获取它,然后将其提取到您的系统中。这引发了以下问题:文件将在哪里创建以及将创建什么?我们可以检查文件.tar
以确定其中的内容。请记住,当我们使用 TAR 时,我们希望它是V erbose,因此我们添加了标志v
,以便我们可以看到它在做什么。在列出存档内容的情况下,添加verbose
或与在命令中添加 来v
请求长列表相同。
ls
-l
tar --list --verbose --file <此处为文件名>
好吧,让我们面对现实吧,没有人会这样做;如果您阅读了手册页并决定要输入所有内容,那么它看起来会是这样的。我很懒,我喜欢用最少的打字来完成工作。您在这里看到的内容与此相同:
tar -tvf <此处为文件名>
这里唯一奇怪的是--list
被 替换-t
,然后我们可以将所有标志添加到同一个-
语句中。这意味着对于其余的示例,我将向您展示简写,您可以决定如何执行。现在让我们看一些实际的输出。
$ tar -tvf ./example.tar drwxr-xr-x 0 mmcclaren 员工 0 5 月 2 日 14:37 ./example/ -rw-r--r-- 0 mmcclaren 员工 210 5 月 2 日 14:23 ./example/._examplefile1 -rw-r--r-- 0 mmcclaren 员工 899 5 月 2 日 14:23 ./example/examplefile1 -rw-r--r-- 0 mmcclaren 员工 210 5 月 2 日 14:23 ./example/._examplefile2 -rw-r--r-- 0 mmcclaren 员工 15033 5 月 2 日 14:23 ./example/examplefile2 -rw-r--r-- 0 mmcclaren 员工 210 5 月 2 日 14:23 ./example/._examplefile3 -rw-r--r-- 0 mmcclaren 员工 14957 5 月 2 日 14:23 ./example/examplefile3
在这种情况下,我们可以看到所有示例文件都包含在示例目录中。这意味着当我们提取此文件时,我们将在输出中获得该目录。如果路径仅包含文件且不包含目录,则文件最终将位于您所在的目录中,除非您指定提取点。
提取 TAR 档案
现在我们知道了里面有什么,我们想把它从里面取出来。这需要运行 e X tract 标志和 F ile 标志。请记住,我们可以添加 V erbose 标志,这样我们就可以查看它正在处理什么。
$ tar -xvf ./example.tar x ./example/ x ./example/._examplefile1 x ./example/examplefile1 x ./example/._examplefile2 x ./example/examplefile2 x ./example/._examplefile3 x ./example/examplefile3
在此示例中,我们将文件提取到示例目录中。
$ ls -l ./example 总计 72 -rw-r--r--@ 1 mmcclaren 员工 899 5 月 2 日 14:23 examplefile1 -rw-r--r--@ 1 mmcclaren 员工 15033 5 月 2 日 14:23 examplefile2 -rw-r--r--@ 1 mmcclaren 员工 14957 5 月 2 日 14:23 examplefile3
如果我们想指示要将档案提取到哪里,则需要添加 -C 标志和一个位置作为参数。可以将其视为将提取的文件“复制”到指定位置。
$ tar -xvf ./example.tar -C ./location x ./example/ x ./example/._examplefile1 x ./example/examplefile1 x ./example/._examplefile2 x ./example/examplefile2 x ./example/._examplefile3 x ./example/examplefile3 $ ls -l ./location total 0 drwxr-xr-x 5 mmcclaren 员工 160 5 月 2 日 15:08 示例
最后我想说的是从存档中提取一个文件。这采用tar -xf ( archive name ) ( file name )
本例中的形式。
$ tar -xvf ./example.tar ./example/examplefile2 x ./example/examplefile2 $ ls example example.tar 位置 $ ls ./example examplefile2
创建档案
呼,这可真长啊!不过,我们不能不知道如何创建档案。最简单的方法是将 TAR 指向一个目录,然后使用以下形式的
C-c
reate标志:tar -cf <存档名称> <存档目录>
这就是我们一直使用的示例档案的创建方式:
$ tar -cvf example.tar example a example a example/examplefile1 a example/examplefile2 a example/examplefile3 $ tar -tf ./example.tar example/ example/._examplefile1 example/examplefile1 example/._examplefile2 example/examplefile2 example/._examplefile3 example/examplefile3
最后一件事:让我们将文件添加到现有档案中。该-r
标志用于附加到目录,其语法与“create”相同;档案名称,然后是文件。
$ tar -rf example.tar examplefile4 $ tar -tf example.tarexample/example/._examplefile1example/examplefile1example/._examplefile2example/examplefile2example/._examplefile3example/examplefile3examplefile4
正如您所见,它examplefile4
已被添加到我们一直使用的以前的档案中。
我不敢相信我读完了整篇文章!
我知道这是一篇很长的博客文章,但如果您想更深入地了解 TAR 命令,请查看Linux Academy上的LPI Linux Essentials。如果您想了解更多信息,请前往并注册 7 天免费试用,了解排名第一的“边做边学”培训平台如何帮助您提高技能。我们还提供免费社区版,并提供最好的实践“边做边学”培训!下次见,继续学习!
请先 登录后发表评论 ~