com zsh :
cd /home/config && ssh user@host << \EOF | tar xpf -
zsh -c '
cd /tmp || exit
typeset -A seen; files=()
for f (app_conf*_*_*.tgz(On)) {((seen[${f%_*_*}]++)) || files+=($f)}
tar cf - $files'
EOF
Se o shell de login de user em host for zsh , você poderá simplificá-lo para:
cd /home/config && ssh user@host '
cd /tmp || exit
typeset -A seen; files=()
for f (app_conf*_*_*.tgz(On)) {((seen[${f%_*_*}]++)) || files+=($f)}
tar cf - $files' | tar xpf -
A idéia é que processemos a lista de arquivos em ordem reversa ( (On) ) e selecione o arquivo se a parte do nome do arquivo antes de _*_* não foi vista.
Os arquivos são transferidos usando tar , que também tem o benefício de transferir todos os metadados dos arquivos.