Se eu entendi sua pergunta, você quer saber como passar argumentos para o script especificado por -c
...|xargs -I {} sh -c 'tar zcvf "$1"-'"$postfix"'.tgz "$1"'"$file_pattern" _ {}
O primeiro argumento após o script ( _
) se tornará $0
em sh
e o próximo argumento ( {}
de xargs) será $1
. A mistura de aspas simples e duplas é um pouco complicada, mas necessária, já que você tem alguns parâmetros que você precisa para substituir agora e alguns que você precisa do sh
para manipular.