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

如何单命令提取tar包指定文件且不保留父目录结构?

实现仅提取单个文件且不保留目录结构

当然有单命令可以实现这个需求,完全不需要全量解压归档文件。这里有两种常用的方法,都能直接拿到你想要的file.txt:

方法一:使用--strip-components参数(推荐)

这个参数可以帮你去掉归档文件中路径的前N层目录,刚好匹配你的需求:

tar -xzf foo.tar.gz --strip-components=2 folder_1/folder_2/file.txt

参数解释:

  • -x:切换到解压模式
  • -z:告诉tar处理gzip压缩的归档(因为你的文件是.tar.gz格式)
  • -f:指定要操作的归档文件名
  • --strip-components=2:关键参数,意思是移除路径的前2层目录(也就是folder_1/和folder_2/)
  • 最后的folder_1/folder_2/file.txt是归档文件中目标文件的完整路径

如果想把提取的文件放到指定目录(比如./my_files),可以加上-C参数(注意目标目录需要提前创建):

tar -xzf foo.tar.gz --strip-components=2 -C ./my_files folder_1/folder_2/file.txt

方法二:使用-O参数重定向输出

这个方法会把文件内容直接输出到标准输出,然后你可以重定向到目标文件:

tar -xzf foo.tar.gz -O folder_1/folder_2/file.txt > file.txt
  • -O:表示将提取的文件内容输出到标准输出,而不是直接创建文件
  • 最后通过>将标准输出的内容写入到当前目录的file.txt中

这两种方法都能快速拿到单独的file.txt,不会生成多余的目录层级,选哪种都可以~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:26:54