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

如何创建根目录含指定目录与隐藏文件的tar.xz归档文件

解决tar.xz归档根目录仅包含指定内容的问题

我完全懂你这种反复尝试却没得到想要结果的烦躁——其实核心就是要让tar命令的工作目录精准定位到dir1内部,这样打包出来的内容就不会带上外层的dir1或者当前目录。下面给你两种靠谱的解决方案:

方案1:切换到目标目录后打包

这是最直观的方式,先进入dir1再直接打包内部内容:

cd dir1 && tar -cJf ../archive.tar.xz dir2 .hiddenFile
  • cd dir1:切换到dir1目录后,dir2和.hiddenFile就成了当前目录的直接子项
  • tar -cJf ../archive.tar.xz:创建xz压缩的tar归档,把归档文件存到dir1的上级目录,避免不小心把归档文件本身也打包进去
  • dir2 .hiddenFile:明确指定要打包的两个内容,确保隐藏文件不会被遗漏

方案2:用-C参数指定工作目录(无需切换目录)

如果不想改变当前终端的工作目录,可以用tar的-C参数让它临时切换到dir1再执行打包:

tar -cJf archive.tar.xz -C dir1 dir2 .hiddenFile
  • -C dir1:告诉tar先切换到dir1目录,再处理后面的文件/目录
  • 后面的dir2和.hiddenFile是相对于dir1的路径,所以归档后它们会直接出现在归档的根目录下

避坑提醒

  • 别直接执行tar -cJf archive.tar.xz dir1:这样归档的根目录会是dir1,里面才包含dir2和.hiddenFile,完全不符合你的需求
  • 别用dir1/*代替显式指定:通配符*默认不会匹配以.开头的隐藏文件,会直接漏掉.hiddenFile

验证方法

打包完成后,用下面的命令查看归档内容,确认结构是否正确:

tar -tf archive.tar.xz

正常输出应该只显示dir2/(及其子目录和文件)和.hiddenFile,不会出现外层的dir1或.目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:42:00