首页 > 运维 > linux运维 > 正文

Linux 怎么从 zip/tar 中只提取部分文件?

舞姬之光
发布: 2025-12-04 12:23:37
原创
510人浏览过
Linux中可精准提取zip或tar包内指定文件而不全解压:zip用unzip加引号路径,tar用tar -xf加归档内路径,均需先用unzip -l或tar -t查看内部结构以确保路径准确。

linux 怎么从 zip/tar 中只提取部分文件?

Linux 里从 zip 或 tar 包中只提取部分文件,不用解压全部,关键在命令参数的精准指定。

从 zip 文件中提取指定文件

zip 支持直接指定路径提取,注意路径要和 zip 内部结构一致(可用 unzip -l archive.zip 查看)。

  • 提取单个文件:unzip archive.zip "path/to/file.txt"
  • 提取多个文件:unzip archive.zip "dir1/a.txt" "dir2/b.log"
  • 提取某目录下所有 .log 文件:unzip archive.zip "logs/*.log"(需 shell 展开支持,建议加引号防空格出错)
  • 跳过交互确认,加 -o 覆盖已有文件,或 -n 跳过已存在文件

从 tar/tar.gz/tar.xz 中提取指定文件或目录

tar 用 -x(提取)配合文件名参数,路径也按归档内路径写(可用 tar -t -f archive.tar 预览)。

  • 提取单个文件:tar -xf archive.tar path/in/archive/file.conf
  • 提取整个子目录:tar -xf archive.tar "config/"(末尾斜杠可选,但推荐加上明确意图)
  • 提取多个条目:tar -xf archive.tar dir1/ file.txt subdir/script.sh
  • 对压缩格式(如 .tar.gz)同样适用:tar -xzf archive.tar.gz "data/report.csv"

小技巧:批量匹配与排除

tar 本身不支持通配符匹配(如 *.log),但可以结合其他命令实现:

  • 提取所有 .py 文件(需 GNU tar):tar -xzf code.tar.gz --wildcards "*.py"
  • 先列出匹配项再提取(安全做法):tar -tzf logs.tar.gz | grep '\.log$' | xargs -d '\n' tar -xzf logs.tar.gz
  • 排除某些文件用 --exclude,例如跳过临时文件:tar -xzf backup.tar.gz --exclude="*.tmp"

基本上就这些。核心是先 查内容(unzip -l / tar -t),再 写准路径,最后加合适选项。不复杂但容易忽略路径细节。

以上就是Linux 怎么从 zip/tar 中只提取部分文件?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号