-Acdtrux", "--delete"或是"--test-label"
时间: 2025-01-02 09:27:11 浏览: 4
### 关于 `tar` 命令的高级选项
#### `-A`, `--catenate`, `--concatenate`
用于追加归档文件到另一个归档文件中。此功能允许将多个 `.tar` 文件合并成一个更大的档案。
```bash
tar -Af archive1.tar archive2.tar
```
这会把 `archive2.tar` 的内容附加至 `archive1.tar` 后面[^1]。
#### `-c`, `--create`
创建新的归档文件而不是读取现有归存文件。当指定这个参数时,后面通常跟要被加入新创建归档中的文件列表。
```bash
tar -cf new_archive.tar file1.txt file2.txt
```
上述命令将会创建名为 `new_archive.tar` 的归档并包含两个文本文件。
#### `-d`, `--diff`, `--compare`
比较归档内的成员与对应的实际磁盘上的文件之间的差异。这对于验证备份的有效性和完整性非常有用。
```bash
tar -df backup.tar .
```
这条指令用来对比当前工作目录里的所有项目同 `backup.tar` 中存储的数据是否有不同之处。
#### `-t`, `--list`
列出归档的内容而不提取任何东西出来查看其内部结构或确认特定条目是否存在其中。
```bash
tar -tf documents.tar
```
该例子展示了怎样打印出 `documents.tar` 所含有的全部组件名称。
#### `-r`, `--append`
向现有的归档末尾添加文件而不会覆盖原有数据;注意这种方法只适用于未经过压缩处理过的纯`.tar`格式文档。
```bash
tar -rf project_data.tar additional_files/
```
这里说明了如何给已存在的 `project_data.tar` 添加整个 `additional_files/` 目录及其子项。
#### `-u`, `--update`
仅更新那些比归档版本更年轻的文件进入归档内,即只有当源文件较旧版有所更改才会执行插入动作。
```bash
tar -uf website_backup.tar public_html/
```
这段脚本实现了对网站根路径下各资源按需同步最新状态的操作。
#### `-x`, `--extract`, `--get`
从归档里恢复选定的对象回到文件系统当中去,默认情况下会在当前位置展开所有成分除非另外指定了目标位置。
```bash
tar -xf application_sources.tar.gz -C /opt/applications/
```
上面的例子表示解压 `application_sources.tar.gz` 到 `/opt/applications/` 路径之下。
#### `--delete`
删除归档中的某些成员。需要注意的是并非所有的实现都支持这项特性,并且它可能无法安全地应用于大型复杂的归档上以免造成意外损坏风险。
```bash
tar --delete -f my_archive.tar old_file.txt
```
尝试移除 `my_archive.tar` 内部的一个叫做 `old_file.txt` 的记录。
#### `--test-label`
测试归档卷标是否匹配所提供的字符串。如果标签相符则返回成功退出码0,否则失败非零值。
```bash
tar --test-label -f some_volume.tar "My Volume Label"
```
检验 `some_volume.tar` 是否携带预期的文字标识 `"My Volume Label"`。
阅读全文