
如果我有文件結構
dir/
dir/.ignore
dir/file.ext
dir/subdir/
dir/subdir/other_file.ext
其中dir/.ignore
包含一行,*.ext
然後我期望命令
$ tar -czvf dir.tgz --exclude-ignore=.ignore dir
得到的 adir.tgz
包含dir/.ignore
和dir/subdir/other_file.ext
,但不包含dir/file.ext
。
然而,使用 GNU tar 版本 1.34(包含在 Ubuntu 22.04 中)運行該命令會給出:
$ tar -czvf dir.tgz --exclude-ignore=.ignore dir
dir/
dir/subdir/
dir/.ignore
所以dir/subdir/other_file.ext
不包含在dir.tgz
.
手冊頁說:
--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.
然而,排除模式無論如何dir/.ignore
都適用於dir/subdir
?
先說一個顯而易見的事實:不,也不是偶然出現.ignore
的dir/subdir/
。
答案1
可能是個錯誤,已經遇到過。
我發現了這個
--exclude-ignore
選項並--exclude-vcs-ignores
遞歸.cvsignore
地執行,這與手冊相矛盾。
顯然還沒有修復。
現在也報道了在他們的錯誤追蹤器中