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.