Você inclui os arquivos duas vezes, e o GNU tar
percebe e assume que o segundo conjunto de arquivos, já que eles têm o mesmo inode do primeiro conjunto, devem ser hard links.
Você arquiva os arquivos duas vezes:
- Primeiro, arquivando o diretório
/mnt/TEST
(que preenche os critériosfind
), - e novamente arquivando os arquivos individuais.
Você deve modificar seu comando find
para encontrar apenas arquivos regulares:
find /mnt/TEST/ -type f -mmin -10 -exec tar -czvf /tmp/test.tar.gz {} +
Observe também que, se o comando find
encontrar mais arquivos do que os que podem ser manipulados por uma única chamada de tar
, ele chamará tar
várias vezes, sobrescrevendo o arquivo tar toda vez.
Corrigindo isto:
find /mnt/TEST/ -type f -mmin -10 \
-exec sh -c 'a="/tmp/test.tar.gz"; if [ -f "$a" ]; then tar -uzvf "$a" "$@"; else tar -czvf "$a" "$@"; fi' sh {} +
Isto irá anexar arquivos ao arquivo se o arquivo existir ( tar -u
), caso contrário ele irá criar o arquivo ( tar -c
).