O bsdtar (baseado em libarchive) pode filtrar o tar (e alguns outros arquivos) de stdin para stdout. Pode, por exemplo, passar apenas por nomes de arquivos que correspondem a um padrão, e pode fazer s/old/new/
renomeando. Já está empacotado para a maioria das distros, por exemplo, como bsdtar
no Ubuntu.
sudo apt-get install bsdtar # or aptitude, if you have it.
# example from the man page:
bsdtar -c -f new.tar --include='*foo*' @old.tgz
#create new.tar containing only entries from old.tgz containing the string ‘foo’
bsdtar -czf - --include='*foo*' @- # filter stdin to stdout, with gzip compression of output.
Note que há uma grande variedade de formatos de compressão para entrada / saída, assim você não precisa canalizar manualmente através do gunzip / lz4. Você pode usar -
para stdin com a sintaxe @tarfile
e / ou -
para stdout como normal.
Minha busca também encontrou esta ferramenta de streaming de modificação de tar, que parece querer que você defina as alterações de arquivo que você quer usando o javascript. (Eu acho que a coisa toda está escrita em js).