Eu tenho uma observação bastante interessante, que talvez seja um manifesto de um bug.
Meu caso de uso é:
Etapas para reproduzir
Crie a estrutura de arquivos e pastas conforme abaixo:
/tmp/src
└── etc
├── A.cfg
└── config
├── 1.cfg
├── 2.cfg
└── 3.cfg
Crie arquivos de exclusão e inclusão
mbp:tarTests jhartman$ cat /tmp/include.cfg
/tmp/src/etc/
mbp:tarTests jhartman$ cat /tmp/exclude.cfg
/tmp/src/etc/config/*.cfg
Crie um arquivo
$ rm -f /tmp/snapshot
$ tar -g /tmp/snapshot -cvz -f /tmp/test.tar.gz -X /tmp/exclude.cfg -T /tmp/include.cfg
./tar-1.27/src/tar: /tmp/src/etc: Directory is new
./tar-1.27/src/tar: /tmp/src/etc/config: Directory is new
./tar-1.27/src/tar: Removing leading '/' from member names
/tmp/src/etc/
/tmp/src/etc/config/
/tmp/src/etc/A.cfg
Descompacte em um novo servidor. Antes de desarquivar arquivos no novo servidor:
/tmp/src
└── etc
├── A.cfg
└── config
├── 3.cfg
├── 4.cfg
└── 5.cfg
descompactar (na máquina de destino)
$TAR_BASE/src/tar --overwrite --extract --force-local --listed-incremental=/dev/null --file /tmp/test.tar.gz -v -C /
tmp/src/etc/
tmp/src/etc/config/
./tar-1.30/src/tar: Deleting ‘tmp/src/etc/config/4.cfg’
./tar-1.30/src/tar: Deleting ‘tmp/src/etc/config/5.cfg’
tmp/src/etc/A.cfg
Então, eventualmente, arquivos nesta pasta:
/tmp/src
└── etc
├── A.cfg
└── config
└── 3.cfg
Como você vê, apesar de 4.cfg
e 5.cfg
não estarem int src machine, eles desapareceram. Eu estou supondo que é por causa de usar /tmp/src/etc/config/*.cfg
no arquivo de exclusão.
Vale mencionar que esse comportamento estava mudando nas versões: 1.30, 1.27, 1.27.1, 1.29 - NOK, 1.25, 1.26, 1.28 - OK (onde NOK significa - eu pude ver Deletando mensagem para os arquivos em minha preocupação ).
O que você acha?
Obrigado Jarek
Atualização, 2018-08-21, 20:51
Independentemente da versão que eu executo, a saída da operação --list
é a mesma e mostra D na pasta config
:
tar --list --incremental --verbose --verbose --file /tmp/test.tar.gz
drwxr-xr-x jhartman/staff 16 2018-08-21 20:44 tmp/src/etc/
Y A.cfg
D config
drwxr-xr-x jhartman/staff 22 2018-08-21 20:44 tmp/src/etc/config/
N 1.cfg
N 2.cfg
N 3.cfg
-rw-r--r-- jhartman/staff 30 2018-08-21 20:44 tmp/src/etc/A.cfg
Atualização 21:03
Para referência, os scripts que usei para os testes estão armazenados no link repo.
Veja output.txt
para resultados detalhados dos testes.