概述
备份:指的是将文件系统或者数据库中的数据进行复制,一旦发生错误或者灾难时,能及时方便地恢复系统的有效数据和正常运作。
备份方式 有:
- 全量备份(也称完整备份):指把硬盘或数据库内的所有文件、文件夹或数据作一次性的复制。
- 优点:最好,能更快的恢复数据。
- 缺点:占用较大的硬盘空间。
- 增量备份:指对上一次 全量备份 或 增量备份 后更新的数据进行备份。其过程是这样的——比如第一天进行一次全部备份;第二天进行一次新增数据的备份,相对于全部备份来说;第三天在第二天的基础上再进行一次新增数据的备份,相对于第二天来说。以此类推。
- 优点:占用空间较少。
- 缺点:恢复数据麻烦,有多少增量备份就必须恢复多少次。
- 差异备份:指 全量备份 后变更文件的备份。比如第一天全部备份;第二天备份新增数据;第三天备份第二天与第三天的新增数据;第四天备份第二天到第四天所有的新增数据。以此类推。
- 优点:比全量备份占用空间少一些,恢复起来相比增量备份好些。
- 缺点:时间越长,文件占用量越大。
- 选择性备份(部分备份):备份系统的一部分
- 冷备份:指系统处于停机或维护状态下的备份。备份的数据与系统中此时段的数据完全一致。
- 热备份: 指系统处于正常运转状态下的备份。由于系统中的数据随时在更新,备份的数据相对于系统的真实数据有一定的滞后。
- 异地备份:指在另外一个位置备份数据,避免因为火灾、自然灾害、盗窃等造成数据丢失与服务中断。例如银行主要机房或资料中心位于甲地,而在乙地建有同样的资料中心,平时会通过网络传输同步资料。当甲地因为各种原因无法运行时,乙地可接手运行。
备份需要系统管理员严格遵守规定。系统管理员在执行备份操作之前需要考虑以下问题:
- 合适的媒介是什么?
- 应该备份什么?
- 有多少份?
- 备份需要多长时间?
- 方法?
- 多久一次?
- 自动或手动?
- 存储在哪里?
- 要保存多久?
- 是否有成本问题需要考虑?
除了这些问题外,系统管理员还应该根据实际情况考虑性能、数据重要性、带宽消耗和维护复杂性等因素。
恢复方法
根据可用的实用程序,可以进行几种类型的恢复。
在某些关系数据库管理系统中,"recover"(有时在文档中使用 "recovery" )和 "restore" 的相应操作是不同的,这要求您查阅官方文档以获取更多信息。本基础文档不会详细介绍 RDBMS 的这一部分。
- 完全恢复:数据恢复基于全量备份或 "全量备份+增量备份" 或 "全量备份+差异备份" 。
- 选择性恢复:数据恢复基于选择性备份(部分备份)。
不建议在执行恢复操作之前直接删除当前活动操作系统中的目录或文件(除非您知道删除后会发生什么)。如果你不知道会发生什么,你可以在当前操作系统上执行 "快照" 操作。
工具与相关技术
备份工具常见有 tar
、cpio
、dd
和 dump
等。
Replication:一种将一组数据从一个数据源复制到另外一个或多个数据源的备份技术,主要分为 同步复制 和 异步复制。对于系统管理员新手来说,这属于备份的高级部分,因此本基础文档不会详细介绍这些内容。
命名惯例
使用命名惯例可以快速定位备份文件的内容,从而避免危险的恢复。
- 目录名称;
- 所使用的实用工具;
- 所使用的选项;
- 日期。
.tar.gz
或 .tgz
文件扩展名,那么他就知道如何处理该文件。备份文件属性
单个备份文件可以包含以下属性:
- 文件名(包括手动添加的后缀名);
- 备份文件本身的 atime、ctime、mtime、btime (crtime);
- 备份文件本身的文件大小;
- 备份文件中的文件或目录的属性或特征将被部分保留。例如保留文件或目录的 mtime,但不保留 inode 号。
存储方法
有两种不同的存储方法:
- 内部:将备份文件存储在当前工作磁盘上。
- 外部:将备份文件存储在外部设备上。 外部设备可以是 USB 驱动器、CD、磁盘、服务器或 NAS 等。
dump
和 restore
概述
dump
会检查文件系统中的文件,确定哪些文件需要备份,并将这些文件复制到指定的磁盘、磁带或其他存储介质。restore
命令执行与 dump
相反的功能。
此实用程序适用于以下文件系统:
- ext2
- ext3
- ext4
xfsdump
。这是 该项目的首页。
在使用此实用程序之前,请执行以下命令进行安装:
Shell > dnf -y install dump
安装后,将释放出两个常用的命令工具:
dump
restore
dump
命令
此命令有两个主要用途:
- 执行备份(转储)操作 –
dump [option(s)] -f <File-Name> <File1> ...
- 查看备份(转储)信息 –
dump [-W | -w]
常见选项包括:
-<level>
– 备份级别。在实际使用中,请将 "level" 替换为 0-9 之间的任何数字。数字 0 表示全量备份,而其他数字表示增量备份。-f <File-Name>
– 指定备份后的文件名和路径。-u
– 备份成功后,将备份时间记录在 /etc/dumpdates 文件中。当备份的对象是一个独立的分区时,可以使用-u
选项。但是,当备份对象是非分区目录时,不能使用-u
选项。-v
– 显示备份过程中的详细处理信息。-W
– 查看转储信息的选项。-z[LEVEL]
– 使用 zlib 库调整压缩级别,默认压缩级别为 2 。换句话说,您可以将备份文件压缩为.gz
格式。压缩级别的可调范围为 1-9。-j[LEVEL]
– 使用 bzlib 库调整压缩级别,默认压缩级别为 2 。换句话说,您可以将备份文件压缩为.bz2
格式。压缩级别的可调范围为 1-9。
dump
使用示例
-
对根分区执行全量备份:
Shell > dump -0u -j3 -f /tmp/root-20241208.bak.bz2 / DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208.bak.bz2 DUMP: Label: none DUMP: Writing 10 Kilobyte records DUMP: Compressing output at transformation level 3 (bzlib) DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 14693111 blocks. DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:04:41 2024 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: 20.69% done at 10133 kB/s, finished in 0:19 DUMP: 43.74% done at 10712 kB/s, finished in 0:12 DUMP: 70.91% done at 11575 kB/s, finished in 0:06 DUMP: 93.23% done at 11415 kB/s, finished in 0:01 DUMP: Closing /tmp/root-20241208.bak.bz2 DUMP: Volume 1 completed at: Sun Dec 8 19:26:08 2024 DUMP: Volume 1 took 0:21:27 DUMP: Volume 1 transfer rate: 5133 kB/s DUMP: Volume 1 14722930kB uncompressed, 6607183kB compressed, 2.229:1 DUMP: 14722930 blocks (14377.86MB) on 1 volume(s) DUMP: finished in 1287 seconds, throughput 11439 kBytes/sec DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 DUMP: Date this dump completed: Sun Dec 8 19:26:08 2024 DUMP: Average transfer rate: 5133 kB/s DUMP: Wrote 14722930kB uncompressed, 6607183kB compressed, 2.229:1 DUMP: DUMP IS DONE Shell > ls -lh /tmp/root-20241208.bak.bz2 -rw-r--r-- 1 root root 6.4G Dec 8 19:26 /tmp/root-20241208.bak.bz2
-
成功执行转储后,检查相关信息:
Shell > cat /etc/dumpdates /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 Shell > dump -W Last dump(s) done (Dump '>' file systems): /dev/nvme0n1p2 ( /) Last dump: Level 0, Date Sun Dec 8 19:04:39 2024
-
在全量备份的基础上实现增量备份:
Shell > echo "jack" >> /tmp/tmpfile.txt Shell > dump -1u -j4 -f /tmp/root-20241208-LV1.bak.bz2 / DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 DUMP: Date of last level 0 dump: Sun Dec 8 19:04:39 2024 DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208-LV1.bak.bz2 DUMP: Label: none DUMP: Writing 10 Kilobyte records DUMP: Compressing output at transformation level 4 (bzlib) DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 6620898 blocks. DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:38:58 2024 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: 38.13% done at 8415 kB/s, finished in 0:08 DUMP: 75.30% done at 8309 kB/s, finished in 0:03 DUMP: Closing /tmp/root-20241208-LV1.bak.bz2 DUMP: Volume 1 completed at: Sun Dec 8 19:52:03 2024 DUMP: Volume 1 took 0:13:05 DUMP: Volume 1 transfer rate: 8408 kB/s DUMP: Volume 1 6620910kB uncompressed, 6600592kB compressed, 1.004:1 DUMP: 6620910 blocks (6465.73MB) on 1 volume(s) DUMP: finished in 785 seconds, throughput 8434 kBytes/sec DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 DUMP: Date this dump completed: Sun Dec 8 19:52:03 2024 DUMP: Average transfer rate: 8408 kB/s DUMP: Wrote 6620910kB uncompressed, 6600592kB compressed, 1.004:1 DUMP: DUMP IS DONE Shell > cat /etc/dumpdates /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 /dev/nvme0n1p2 1 Sun Dec 8 19:38:51 2024 +0800 Shell > dump -W Last dump(s) done (Dump '>' file systems): /dev/nvme0n1p2 ( /) Last dump: Level 1, Date Sun Dec 8 19:38:51 2024
-
对于非分区目录,只能使用全量备份(
-0
),不能使用-u
选项:Shell > dump -0uj -f /tmp/etc-full-20241208.bak.bz2 /etc/ DUMP: You can't update the dumpdates file when dumping a subdirectory DUMP: The ENTIRE dump is aborted. Shell > dump -0j -f /tmp/etc-full-20241208.bak.bz2 /etc/ DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 DUMP: Dumping /dev/nvme0n1p2 (/ (dir etc)) to /tmp/etc-full-20241208.bak.bz2 DUMP: Label: none DUMP: Writing 10 Kilobyte records DUMP: Compressing output at transformation level 2 (bzlib) DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 28204 blocks. DUMP: Volume 1 started with block 1 at: Sun Dec 8 20:00:38 2024 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: Closing /tmp/etc-full-20241208.bak.bz2 DUMP: Volume 1 completed at: Sun Dec 8 20:00:40 2024 DUMP: Volume 1 took 0:00:02 DUMP: Volume 1 transfer rate: 3751 kB/s DUMP: Volume 1 29090kB uncompressed, 7503kB compressed, 3.878:1 DUMP: 29090 blocks (28.41MB) on 1 volume(s) DUMP: finished in 2 seconds, throughput 14545 kBytes/sec DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 DUMP: Date this dump completed: Sun Dec 8 20:00:40 2024 DUMP: Average transfer rate: 3751 kB/s DUMP: Wrote 29090kB uncompressed, 7503kB compressed, 3.878:1 DUMP: DUMP IS DONE
对 /etc/ 目录执行增量备份将导致错误:
Shell > dump -1j -f /tmp/etc-incr-20241208.bak.bz2 /etc/ DUMP: Only level 0 dumps are allowed on a subdirectory DUMP: The ENTIRE dump is aborted.
restore
命令
该命令的用法为 – restore <mode(flag)> [option(s)] -f <Dump-File>
mode (flag) 可以是以下的其中一个:
-C
– 比较模式。Restore 读取备份并将其内容与磁盘上存在的文件进行比较,它主要用于在分区上执行备份后进行比较。在这种模式下,只会比较基于原始数据的更改。如果磁盘上有新数据,则无法检测和比较。-i
– 交互模式。此模式允许从转储中交互式还原文件。-t
– 列表模式。列出备份文件中的数据。-r
– 还原模式。如果是 "完全备份 + 增量备份" 的方式,则需要按照时间顺序依次还原。-x
– 提取模式。从备份文件中提取部分或全部文件。
restore
使用示例
-
从 /tmp/etc-full-20241208.bak.bz2 还原数据:
Shell > mkdir /tmp/data/ Shell > restore -t -f /tmp/etc-full-20241208.bak.bz2 Shell > cd /tmp/data/ ; restore -r -f /tmp/etc-full-20241208.bak.bz2 Shell > ls -l /tmp/data/ total 4992 drwxr-xr-x. 90 root root 4096 Dec 8 17:13 etc -rw------- 1 root root 5107632 Dec 8 20:39 restoresymtable
如您所见,成功还原后会出现一个名为 restoresymtable 的文件。此文件是执行增量备份系统还原操作所依赖的重要文件。
-
在交互模式下处理备份文件:
Shell > restore -i -f /tmp/etc-full-20241208.bak.bz2 Dump tape is compressed. restore > ?
在此模式下,您可以键入 "?" 键查看可用的交互式命令。
tar
概述
tar
(tape archive) 是一种用于处理 GNU/Linux 和其他 UNIX 操作系统上的归档文件的工具。
将文件方便地存储在磁带上是 tar
的最初用途,"tar" 这个名字就是由此而来的。尽管该实用程序名为 tar
,但它可以将归档输出定向到可用设备、文件或其他程序(使用管道),并可以访问远程设备或文件(作为存档)。
目前在现代 GNU/Linux 上使用的 tar
最初来自 GNU Project。您可以在 GNU 网站 上浏览和下载所有版本的 tar
。
请注意!不同发行版中的 tar
可能有不同的默认选项,需要使用者关注
# RockyLinux 8 和 Fedora 41
Shell > tar --show-defaults
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt --rsh-command=/usr/bin/ssh
使用 tar
当您使用 tar
时,请注意它有两种保存模式:
- 相对模式(默认): 从文件中删除前导符 "/"。即使您添加了具有绝对路径的文件,在这种模式下,
tar
也会删除前导符 "/"。 - 绝对模式: 保留前导符 "/" 并将其作为文件名的一部分。要启用此保存模式,您需要使用
-P
选项。在此模式下,您必须将所有文件用绝对路径进行表示。出于安全性考虑,除非您有特殊的场景需要,否则在大多数情况下不应使用此保存模式。
当你使用 tar
时,你会遇到如 .tar.gz
、.tar.xz
和 .tar.bz2
这样的后缀名,它们表示首先创建一个归档(将相关文件和目录归类为单个文件),然后用相关的压缩类型或压缩算法压缩文件。
压缩类型或压缩算法可以是 gzip
、bzip2
、xz
、zstd
等。
tar
允许从归档文件中提取单个文件或目录,也可以查看其内容或验证其完整性。
创建归档并使用压缩的用法是:
tar [option] [PATH] [DIR1] ... [FILE1] ...
. 例如tar -czvf /tmp/Fullbackup-20241201.tar.gz /etc/ /var/log/
从归档中提取文件的用法是:
tar [option] [PATH] -C [dir]
. 例如tar -xzvf /tmp/Fullbackup-20241201.tar.gz -C /tmp/D1
tar
将根据手动添加的后缀名自动选择压缩类型。例如,对于 .tar.gz
文件,您可以直接使用 tar -xvf
而无需使用 tar-xvzf
。要创建归档压缩文件,您 必须 选择压缩类型。
.tar.gz
或 .tgz
文件扩展名,那么他就知道如何处理该文件。操作参数或类型
类型 | 说明 |
---|---|
-A |
将当前归档中的所有文件追加到另外一个归档的末尾。仅适用于 .tar 类型的归档非压缩文件 |
-c |
创建归档。非常常用 |
-d |
比较归档文件和相应的未归档文件之间的差异 |
-r |
将文件或目录追加到归档的末尾。仅适用于 .tar 类型的归档非压缩文件 |
-t |
列出归档的内容 |
-u |
只将较新的文件追加到归档中。仅适用于 .tar 类型的归档非压缩文件 |
-x |
从归档中提取。非常常用 |
--delete |
从 .tar 归档文件中删除文件或目录。仅适用于 .tar 类型的归档非压缩文件 |
tar
的主要功能是什么,换句话说,您必须选择上述类型中的其中一个。常用辅助选项
选项 | 说明 |
---|---|
-z |
使用 gzip 作为压缩类型。创建归档和从归档中提取都适用 |
-v |
显示处理细节 |
-f |
指定用于归档的文件名(包括文件后缀名) |
-j |
使用 bzip2 作为压缩类型。创建归档和从归档中提取都适用 |
-J |
使用 xz 作为压缩类型。创建归档和从归档中提取都适用 |
-C |
从归档中提取文件后的保存位置 |
-P |
使用绝对模式保存 |
其他未提及的辅助选项请参阅 man 1 tar
tar
中,option(s) 也被称为 key(s),这意味着使用带有 “-” 开头的选项可能会导致 tar
无法按预期工作。此时,您需要删除 “-” 前缀以使其正常工作。关于选项样式
tar
提供了三种样式的选项:
-
传统样式的用法为:
tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]
.
-
简短选项样式的用法为:
tar -A [OPTIONS] ARCHIVE ARCHIVE
tar -c [-f ARCHIVE] [OPTIONS] [FILE...]
tar -d [-f ARCHIVE] [OPTIONS] [FILE...]
tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]
tar -r [-f ARCHIVE] [OPTIONS] [FILE...]
tar -u [-f ARCHIVE] [OPTIONS] [FILE...]
tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]
-
长选项样式的用法为:
tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE
tar --create [--file ARCHIVE] [OPTIONS] [FILE...]
tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]
tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]
tar --append [-f ARCHIVE] [OPTIONS] [FILE...]
tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]
tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]
tar --update [--file ARCHIVE] [OPTIONS] [FILE...]
tar --update [-f ARCHIVE] [OPTIONS] [FILE...]
tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]
一般来说,第二种方法更常用,符合大多数 GNU/Linux 用户的习惯。
压缩效率和使用频率
tar
本身没有压缩功能,因此它需要与其他压缩工具结合使用。压缩和解压缩会影响资源消耗。
以下是一组文本文件的压缩效率从最低到最高的排名:
- compress (
.tar.Z
) – 不太受欢迎 - gzip (
.tar.gz
或.tgz
) – 受欢迎 - bzip2 (
.tar.bz2
或.tb2
or.tbz
) – 受欢迎 - lzip (
.tar.lz
) – 不太受欢迎 - xz (
.tar.xz
) – 受欢迎
tar
命名约定
以下是 tar
归档的命名约定示例:
主功能与辅助选项 | 文件 | 后缀名 | 说明 |
---|---|---|---|
-cvf |
home |
home.tar |
相对模式下的 /home ,未使用压缩 |
-cvfP |
/etc |
etc.A.tar |
绝对模式下的 /etc , 未使用压缩 |
-cvfz |
usr |
usr.tar.gz |
相对模式下的 /usr ,使用 gzip 压缩 |
-cvfj |
usr |
usr.tar.bz2 |
相对模式下的 /usr ,使用 bzip2 压缩 |
-cvfPz |
/home |
home.A.tar.gz |
绝对模式下的 /home ,使用 gzip 压缩 |
-cvfPj |
/home |
home.A.tar.bz2 |
绝对模式下的 /home ,使用 bzip2 压缩 |
您还可以将日期添加到文件名中。
使用示例
-c
类型
-
以相对模式归档并压缩 /etc/,后缀名为
.tar.gz
:Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/
由于默认情况下
tar
在相对模式下工作,因此命令输出的第一行将显示以下内容:tar: Removing leading '/' from member names
-
归档 /var/log/ 并选择 xz 类型进行压缩:
Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz 18M /var/log/ -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz
-
估计文件大小而不生成归档:
Shell > tar -cJf - /etc | wc -c tar: Removing leading `/' from member names 3721884
wc -c
命令的输出单位是字节。 -
切割大型
.tar.gz
文件:Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. Shell > ls -lh /tmp/ -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03
第一个 "-" 表示
tar
的输入参数,而第二个 "-" 告诉tar
将输出重定向到stdout
。要提取这些切割的小文件,您可以使用以下操作:
Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/
-x
类型
-
下载 Redis 源代码并将其提取到
/usr/local/src/
目录:Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/
-
从归档压缩文件中仅提取一个文件
Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf
-A
或 -r
类型
-
将一个
.tar
文件追加到另一个.tar
文件中:Shell > tar -cvf /tmp/etc.tar /etc/ Shell > tar -cvf /tmp/log.tar /var/log/ Shell > tar -Avf /tmp/etc.tar /tmp/log.tar
这意味着将
log.tar
中的文件(成员)追加到etc.tar
中。 -
将文件或目录追加到
.tar
文件中:Shell > tar -rvf /tmp/log.tar /etc/chrony.conf tar: Removing leading `/' from member names /etc/chrony.conf tar: Removing leading `/' from hard link targets Shell > tar -rvf /tmp/log.tar /tmp/dir1
注意无论使用-A
还是-r
选项,都要注意相关归档文件的保存方式。此外,-A
和-r
不适用于归档压缩文件。
-t
类型
-
查看归档内容:
Shell > tar -tvf /tmp/log.tar Shell > tar -tvf /tmp/etc-20241207.tar.gz | less
-d
类型
-
比较文件差异:
Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf etc/chrony.conf Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/
对于使用相对模式的保存方式,当使用
-d
类型时,请将文件路径切换为 "/"。
-u
类型
-
如果同一文件有多个版本,可以使用
-u
类型:Shell > touch /tmp/tmpfile1 Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 Shell > echo "File Name" >> /tmp/tmpfile1 Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 Shell > tar -tvf /tmp/log.tar ... -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1
--delete
类型
-
您还可以使用
--delete
删除.tar
文件中的文件或目录:Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/
删除时,将从归档中删除所有同名文件。
通用术语
一些网站常会提到两个术语:
- tarfile – 指未压缩的归档文件,如
.tar
文件 - tarball – 指压缩的归档文件, 如
.tar.gz
和.tar.xz