使用 --exclude-cache 的 GNU tar 无法排除包含 CACHEDIR.TAG 文件的目录

使用 --exclude-cache 的 GNU tar 无法排除包含 CACHEDIR.TAG 文件的目录

根据 GNU tar 手册页,CACHEDIR.TAG可以通过指定命令行选项(例如--exclude-cache.

这似乎不会发生。

$ mkdir -pt/a/b/c
$ 触摸 t/a/b/foo t/a/b/CACHEDIR.TAG
$ tar --exclude-caches-all -cvf /dev/null t
吨/
吨/一/
标签/
t/a/b/c/
t/a/b/CACHEDIR.TAG
t/a/b/foo

答案1

查看 GNU tar 源代码(然后查看Texinfo 文档)表明该文件需要包含一个特殊的签名。将此签名添加到文件中可以解决问题。

$ mkdir -pt/a/b/c
$触摸t/a/b/foo
$ echo 签名:8a477f597d28d172789f06886806bc55 >t/a/b/CACHEDIR.TAG
$ tar --exclude-caches-all -cvf /dev/null t
吨/
吨/一/
tar:t/a/b/:包含缓存目录标签CACHEDIR.TAG;目录未转储

相关内容