显示 tar 文件的内容

当前目录现在将包含一个名为 test.tar 的文件。
要显示 tar 文件的内容,我们可以发出以下命令:

# tar tvf test.tar
drwxr-xr-x root/root         0 2018-01-04 10:01 ./
-rw-r--r-- root/root      2277 2018-01-04 09:57 ./file1
-rw-r--r-- root/root      1456 2018-01-04 09:58 ./file3
-rw-r--r-- root/root      1611 2018-01-04 09:58 ./file2

其中:

  • t 目录(列表)
  • v 详细(显示所有信息)
  • f 文件名 (test.tar)

使用 tar 保留权限

如果要保留备份文件的权限,请在 tar 命令中使用 p 选项。
这将保存 uid、gid 以及文件的特定权限属性(读、写、执行等)。

# tar pcvf test.tar .

在提取上述 tar 文件时,如果要提取具有保留文件权限的文件,则必须再次使用 p 选项。
例如 :

# tar pxvf test.tar .
Linux下如何tar、untar文件以及查看tar文件的内容

tar 命令对于捆绑多个文件和/或者目录很有用。
从某种意义上说,它类似于 zip 命令。
但是,zip 文件根据定义是压缩的; tar 文件可以压缩,但不是必须的。

使用 tar 压缩

如果我们还想为 tar 文件添加压缩,我们可以通过将 z 开关添加到命令中,在命令行上将 gzip 实用程序与 tar 结合使用。
通常,完成此操作后,我们会将 tar 文件名的后缀从 .tar 更改为 .tgz 或者 .tar.gz。
这会让看到该文件的人知道它是一个 gzip 压缩的 tar 文件。

# tar zcvf test.tgz .
./
./file1
./file3
./file2
tar: .: file changed as we read it
# ls -lrt
total 16
-rw-r--r-- 1 root root 2277 Jan  4 09:57 file1
-rw-r--r-- 1 root root 1611 Jan  4 09:58 file2
-rw-r--r-- 1 root root 1456 Jan  4 09:58 file3
-rw-r--r-- 1 root root 1639 Jan  4 11:27 test.tgz

其中:

  • z gzip 压缩
  • c 创建
  • v 冗长
  • f 文件名 (test.tgz)
  • .当前目录

tar 命令知道另一种称为 bzip2 的压缩算法。
要使用 bzip2 而不是 gzip,请将上述命令中的 'z ' 替换为 'j ' 例如:

# tar jcvf test.bz2 .

要提取压缩文件,请包含选项“z”和“j”。
例如,

# tar xzvf test.tgz
# tar xjvf test.bz2

提取完整的 tar 文件

要将 tar 文件的全部内容提取到当前目录,我们可以键入:

# tar xvf test.tar 
./
./file1
./file3
./file2

其中:

  • x 提取文件
  • v 冗长
  • f 文件名 (test.tar)
www. On IT Road .com

从 tar 文件中提取特定文件

我们还可以从 tar 文件中提取特定文件,而不是提取整个 tar 文件。
要仅从存档中提取 file1 文件,执行以下命令:

tar xvf test.tar file1

创建 tar 文件

在接下来的示例中,使用了以下文件结构:名为 /var/tmp/test 的顶级目录,其中包含文件 file1. file2 和 file3.

# ls -lR /var/tmp/test
/var/tmp/test:
total 12
-rw-r--r-- 1 root root 2277 Jan  4 09:57 file1
-rw-r--r-- 1 root root 1611 Jan  4 09:58 file2
-rw-r--r-- 1 root root 1456 Jan  4 09:58 file3
  1. 假设我们已经在 /var/tmp/test 目录中,要为 test 目录中的所有文件创建一个 tar 文件,请发出以下命令。
# tar cvf test.tar .
./
tar: ./test.tar: file is the archive; not dumped
./file1
./file3
./file2

其中:
c创建(存档)
v冗长
f 文件名(我们的 tar 文件名)
.当前目录

注意:另外值得一提的是,默认情况下 tar 是递归的。
这意味着它将递归备份所有文件和子目录,除非我们另外指定 n 标志(非递归)

日期:2020-09-17 00:13:55 来源:oir作者:oir