Isso é aparentemente por design - da documentação :
To be even more cautious and prevent existing files from being replaced, use the
--keep-old-files
(-k
) option. It causes tar to refuse to replace or update a file that already exists, i.e., a file with the same name as an archive member prevents extraction of that archive member. Instead, it reports an error.
O repositório git contém um patch que introduz um parâmetro --skip-old-files
, então isso pode ser resolvido em uma futura versão do GNU tar
:
+A new option --skip-old-files is introduced, which acts exactly as +--keep-old-files, except that it does not treat existing files as +errors. Instead it just silently skips them. An additional level of +verbosity can be obtained by using the option --warning=existing-file +together with this option.
O patch ainda não foi lançado em um lançamento oficial .