linux中tar压缩排除缓存目录需用--exclude参数,路径不加尾斜杠,支持多次使用、通配符(如*/.cache)及--exclude-from读取列表,配合-c可排除顶层目录名。

Linux 中用 tar 压缩时排除临时缓存文件夹,核心是用 --exclude 参数精准跳过目标路径,关键在于写对路径模式、避免常见陷阱。
直接用 --exclude 排除常见缓存目录
多数缓存目录有固定命名,如 cache、tmp、temp、.cache 等。命令中多次使用 --exclude 即可:
tar -czvf app.tar.gz --exclude=cache --exclude=tmp --exclude=.cache ./app- 注意:路径名不加尾部斜杠
/,否则可能失效(例如写成cache/可能仍被包含) - 如果缓存目录在子路径中(如
app/src/cache),只写cache就能匹配所有层级同名目录
用通配符批量排除同类缓存结构
当缓存目录分散且命名带规律时,通配符更高效:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 跳过所有
.cache目录:--exclude='*/.cache' - 跳过所有
node_modules和__pycache__:--exclude='node_modules' --exclude='__pycache__' - 跳过以
log或tmp结尾的目录:--exclude='*log' --exclude='*tmp'
从文件读取排除列表(适合大量缓存路径)
把要跳过的路径统一写进一个文件,便于复用和维护:
- 新建
exclude.list,每行一个路径或模式:
cache
tmp
*/.thumbnails
*.log - 执行:
tar -czvf backup.tar.gz --exclude-from=exclude.list /path/to/project - 注意:若
exclude.list中写的是绝对路径(如/home/user/.cache),则 tar 命令中的源路径也需用绝对路径
排除顶层目录本身(不打包父文件夹名)
有时你只想压缩目录内容,不希望归档里出现外层文件夹名,比如压缩 /opt/app 但解压后直接是 index.html 而不是 app/index.html:
- 用
-C切换目录 +.打包当前内容:tar -czvf app-content.tar.gz -C /opt/app . - 这样
--exclude也能按相对路径写,例如--exclude=logs就指/opt/app/logs










