El comportamiento de tar --exclude-ignore no es el esperado

El comportamiento de tar --exclude-ignore no es el esperado

Si tengo la estructura del archivo

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

donde dir/.ignorecontiene una línea, *.extentonces esperaría el comando

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

para dar como resultado un dir.tgzque contiene dir/.ignorey dir/subdir/other_file.ext, pero no dir/file.ext.

Sin embargo, ejecutar ese comando usando GNU tar versión 1.34 (como se incluye con Ubuntu 22.04) da:

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

por lo que dir/subdir/other_file.extno está incluido en dir.tgz.

La página de manual dice:

  --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.

y la alternativa específica

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

dir/.ignoreSin embargo, ¿se aplica el patrón de exclusión de dir/subdirtodos modos?

Para adelantarnos a lo obvio: no, no hay accidentalmente un .ignorein dir/subdir/también.

Respuesta1

Probablemente un errorya encontrado.

Encontré esa --exclude-ignoreopción y --exclude-vcs-ignoresactúo .cvsignorede forma recursiva, lo que contradice el manual.

Aparentemente aún no se ha solucionado.

Ahora también reportadoen su rastreador de errores

información relacionada