You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

tar命令:使用-r参数与-c参数创建归档文件是否等效?

tar -r 和 -c 参数创建归档的区别

归档不存在时的表面效果

当目标归档文件还未创建时,执行tar -rf hello.tar hello和tar -cf hello.tar hello确实都会生成包含hello文件的归档,这时候最终的归档内容在常规使用场景下是一致的。

核心差异与实际使用区别

  • 设计目的不同
    -c是专门用来创建新归档的参数,本质就是「新建」;而-r的本职工作是给已存在的归档追加文件,创建归档只是它的兼容 fallback 行为,不是核心功能。

  • 对已有归档的处理完全不同
    如果hello.tar已经存在:

    • tar -cf会直接替换整个原归档,里面原来的内容全部丢失,换成新的文件;
    • tar -rf会把新文件追加到原归档的末尾,原有内容保留,新内容加在后面。
  • 特殊场景下的限制差异
    要是处理的是压缩归档(比如.tar.gz这类),-r根本没法直接追加内容——因为压缩归档是整体压缩的,无法单独追加;但-c可以配合-z这类参数直接创建压缩归档。
    另外,部分tar版本里,-r创建的归档在元数据细节上可能和-c略有不同,不过普通使用基本感受不到。

结论

如果只是临时创建新归档,用-r和-c结果可能一样,但从规范和可读性来说,创建新归档就用-c,追加内容才用-r,符合工具设计逻辑,也不会给后续看命令的人造成误解。

内容的提问来源于stack exchange,提问作者kukelia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:15:43