xargs
para o resgate! Uma maneira é usar xargs para criar uma lista de argumentos, mas colocar cada arquivo dentro de aspas:
echo 'ls -t1 | head -10 | xargs -I'{}' echo \"{}\"'
Outra opção é usar xargs
para chamar diretamente tar
no modo append ( -r
) e, em seguida, compactá-lo no final (você não pode criar arquivos compactados no modo append):
ls -t | head -10 | xargs -I'{}' tar -rvf ~/backup/"$i".tar '{}'
gzip ~/backup/"$i".tar
A vantagem da segunda abordagem é que você pode alterar 10
para qualquer outro, mesmo um número muito alto, e ele ainda funcionará sem ter uma lista de argumentos muito longa.