『运维备忘录』之 TAR 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 TAR 命令


一、简介

『运维备忘录』之 TAR 命令详解_第1张图片

在Linux平台上,tar 命令是主要的归档实用程序。了解各种 tar 命令选项将帮助您掌握归档文件操作。Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用 gzip 或者 bzip2 等技术进行压缩。换言之,tar 命令也可以用于备份:先是归档多个文件和目录到一个单独的 tar 文件或归档文件,然后在需要之时将 tar 文件中的文件和目录释放出来。

二、基本语法

tar [选项] [文件名]
  • -c:建立新的备份文件
  • -C:切换到指定的目录
  • -d:对比备份文件内和文件系统上的文件的差异
  • -x:解压缩归档文件
  • -v:显示指令执行过程
  • -f:指定归档文件的文件名
  • -t:查看归档文件内容
  • -j:通过 bzip2 指令处理备份文件
  • -z:通过 gzip 指令处理备份文件
  • -r:向现有存档文件追加或更新文件或目录
  • -W:验证归档文件
  • --totals:备份文件建立后,列出文件大小
  • --delete:从备份文件中删除指定的文件
  • --wildcards:在 unix tar 命令中指定匹配模式

三、实例说明

假设 /home/test/testdir/ 目录下有以下几个文件:

  • /home/cyberpunk/testdir/file1.txt
  • /home/cyberpunk/testdir/file2.sh
  • /home/cyberpunk/testdir/file3.jpg

3.1. 创建一个 tar 格式的压缩文件

# 在当前工作目录的 /home/test/testdir 目录下创建一个名为 archive.tar 的 tar 归档文件:
tar -cvf archive.tar /home/test/testdir/

3.2. 创建压缩后的 tar.gz 存档文件

# 要创建一个压缩的 gzip 归档文件,我们需要使用选项 z
tar cvzf compressedArchive.tar.gz /home/test/testdir

3.3. 生成压缩率更高的 tar.bz2 文件

tar cvfj Archive.tar.bz2 /home/test/testdir

tar 的 bz2 压缩,可以创建比 gzip 文件小的归档。bz2 模式执行归档压缩和解压所需的时间比 gzip 模式多。通常,这个时间差可以忽略不计,但如果文件非常大,或者是文件数量非常多,那么时间差就会非常大。

3.4. 解压缩 tar 文件

tar -xvf Archive.tar -C /home/test/testdir/

要解压缩(提取)一个tar文件,将 x (提取)选项传递给该命令 使用不带 -C 选项的命令将在当前工作目录中提取存档。-C 选项告诉命令在哪里提取存档文件。

3.5. 解压缩 tar.gz(2) 文件

tar -xvf Archive.tar.gz
tar -xvf Archive.tar.bz2

使用 tar 命令创建的所有归档文件,都可以以相同的方式提取。

3.6. 查看 tar 归档内容

tar -tvf uploadprogress.tar

-rwxr--r-- root/root   1005 2020-10-19 12:33:42 file1.txt
-rwxr--r-- root/root   1005 2020-10-19 12:33:42 file2.txt
-rwxr--r-- root/root   1005 2020-10-19 12:33:42 file3.txt
-rwxr--r-- root/root   1005 2020-10-19 12:33:42 file4.txt

3.7. 从 tar 归档文件中提取文件

# 提取单个文件:
tar --extract --file=archive.tar file1.txt

# 提取多个文件:
tar -xvf Archive.tar "file 1" "file 2"

# 使用通配符提取文件组:
tar -xvf Archive.tar --wildcards *.txt'

3.8. 添加文件或目录到 tar 存档中

要向现有的 tar 文件中添加文件或目录,可以使用 r 选项。例如,我们将 xyz.txt 文件和 php 目录添加到现有的 Archive.tar 归档文件中:

tar -rvf Archive.tar xyz.txt  # add file
tar -rvf Archive.tar php      # add directory

Linux命令推荐网址:Linux命令大全(手册)

『运维备忘录』之 TAR 命令详解_第2张图片

你可能感兴趣的:(运维备忘录,运维,linux)