você atingiu o limite de xargs?
xargs --show-limit
tente:
- crie um fictício
.tgz
filetar czf xy_0_10000.tar.gz /hello/world
- substitua
-czf
por-Azf
quando o xarg atinge seu limite, ele irá bifurcar o comando, então o comando que você executou foi
tar czf xy_0_10000.tar.gz file1 file2 .... file666
tar czf xy_0_10000.tar.gz file667 file668 ... file1203
tar czf xy_0_10000.tar.gz file1024 ... file2000
como cada alcatrão ultrapassa o anterior, você deve estar recebendo apenas a última tar c
run.
Editar:
1) de acordo com o acréscimo é feito por (qualquer um) man tar
no unbuntu, -a
e -r parece equivalente -A, --catenate, --concatenate
2) zip
(não gzip
) pode ser usado para adicionar arquivo, talvez uma opção gzip faça o truque. (use | xargs zip -qr xy_0_0000.zip
, isso resultará em um arquivo zip, não em um .tar.gz)
3) para usar a solução do @ rsanchez
É importante adicionar a opção ao tar de forma adequada, tente
ls | sort -n -k1.4,1.9 | head -n10000 |tar -czf xy_0_10000.tar.gz -T -
onde
- -T -
significa a opção de uso -T
e usa -
como argumento para -T
(você pode gerar uma lista de arquivos em /tmp/foo.lst
e usar -T /tmp/foo.lst
)