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

GNU tar 1.34中--exclude-ignore参数行为不符合预期的问题咨询

GNU tar 1.34中--exclude-ignore参数行为不符合预期的问题咨询

我最近在用Ubuntu 22.04自带的GNU tar 1.34版本时碰到了个费解的问题,想请教下大家。

我的文件结构如下:

dir/
dir/.ignore
dir/file.ext
dir/subdir/
dir/subdir/other_file.ext

其中dir/.ignore里只有一行规则:*.ext。

按照我的预期,执行这条命令:

$ tar -czvf dir.tgz --exclude-ignore=.ignore dir

生成的dir.tgz应该包含dir/.ignore和dir/subdir/other_file.ext,但排除dir/file.ext——毕竟手册里说--exclude-ignore的规则只对当前目录生效,子目录不受父目录.ignore的影响。

可实际运行后,我查看压缩包内容,得到的却是:

dir/
dir/subdir/
dir/.ignore

dir/subdir/other_file.ext居然也被排除了,这完全和预期不符。

我特意翻了tar的man手册:

--exclude-ignore=FILE
Before dumping a directory, see if it contains FILE. If so, read exclusion
patterns from this file. The patterns affect only the directory itself.

还有对应的递归版本说明:

--exclude-ignore-recursive=FILE
Same as --exclude-ignore, except that patterns from FILE affect both the
directory and all its subdirectories.

按道理--exclude-ignore的规则只该作用在dir/本身,不该影响dir/subdir/里的文件,但实际结果却是子目录的.ext文件也被过滤了。

提前说明下:我确认dir/subdir/下没有额外的.ignore文件,不存在误触发的情况。

有没有人遇到过类似问题?或者我是不是对这个参数的理解有什么偏差?

备注:内容来源于stack exchange,提问作者Confusion

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 07:29:30