
ファイル構造がわかれば
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/.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
。
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
?
明白なことを先取りすると、いいえ、偶然にもあるわけではありませ.ignore
んdir/subdir/
。