tar --exclude-ignore の動作が期待どおりではない

tar --exclude-ignore の動作が期待どおりではない

ファイル構造がわかれば

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

dir/.ignoreに1行が含まれている場合*.ext、コマンド

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

と をdir.tgz含み、 を含まない が生成されます。dir/.ignoredir/subdir/other_file.extdir/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

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.

それでも、除外パターンはいずれdir/.ignoreにせよ適用されますかdir/subdir?

明白なことを先取りすると、いいえ、偶然にもあるわけではありませ.ignoredir/subdir/

答え1

おそらくバグでしょうすでに遭遇した

私はその--exclude-ignoreオプションと再帰的--exclude-vcs-ignores.cvsignore動作するオプションを見つけましたが、これはマニュアルと矛盾しています。

どうやらまだ修正されていないようです。

今では報告されているバグトラッカーで

関連情報