使用--exclude-from读取清单文件是最稳妥、可维护性最强的tar排除方式,适合屏蔽大量多媒体资产;需创建结构清晰的纯文本排除清单,路径相对当前工作目录,支持通配符,执行时通过tar --exclude-from=清单文件打包目标目录。

直接用 --exclude-from 读取清单文件是最稳妥、可维护性最强的方式,尤其适合屏蔽大量多媒体资产(如图片、音视频、缓存等)。
准备一个结构清晰的排除清单文件
创建纯文本文件(例如 media-exclude.list),每行写一条匹配模式,支持通配符和相对路径。注意:路径不以 / 开头,且不要带末尾斜杠。
-
*.{jpg,jpeg,png,gif,bmp}—— 排除常见图片格式(bash 扩展语法,需 shell 支持) *.mp4*.avi*.mkv*.mov-
*/thumbnails/—— 排除任意层级的缩略图目录 */cache/*/temp/*.tmp
执行打包时引用该清单
进入待备份目录的父级或根路径后运行:
tar --exclude-from=media-exclude.list -zcvf backup.tar.gz ./project
关键点:
– 清单中写的路径是相对于 tar 当前工作目录的;
– ./project 是要打包的目标,不是绝对路径;
– 若清单里写了 project/assets/media/,那它必须真实存在于当前目录下该相对路径位置。
验证是否生效
打包完成后,快速检查归档内容里是否还残留多媒体文件:
tar -tzf backup.tar.gz | grep -E '\.(jpg|mp4|avi|mkv)$' | head -n 5
如果无输出,说明排除成功;若有结果,回头核对清单中的模式是否覆盖到位,或是否因路径层级错位导致未命中。
进阶建议:按类型分组管理清单
当多媒体资产来源复杂(比如前端 public 目录、用户上传区、构建产物等),可拆分为多个清单:
exclude-images.listexclude-videos.listexclude-cache-temp.list
然后合并调用:cat exclude-images.list exclude-videos.list exclude-cache-temp.list > all-media-exclude.list
再传给 --exclude-from,便于后期增删维护。











