while read line; do
  tar -P -c -T - -f archive.tar.gz
done < liste_diff.txt

Le fichier fourni en paramètre contient une liste de fichiers avec pour chacun le chemin absolu sur le serveur + nom du fichier. C’est pourquoi on rajoute l’option -P (--absolute-names) à la commande tar.

ATTENTION : Il faut laisser une ligne vide au début de fichier, sinon le premier fichier de la liste n’est pas pris en compte.

Exemple d’utilisation avec Cygwin sous Windows :
1/ Ouvrir Cygwin.
2/ Se placer dans le répertoire du projet (exemple : C:\www\nom_du_projet\ avec la commande : /cygdrive/c/www/nom_du_projet/).
3/ Mettre la liste des fichiers à archiver dans un fichier texte (ici liste_fichiers.txt).
4/ Exécuter la commande suivante (sur une seule ligne) :
while read line; do tar -P -c -T - -f archive.tar.gz; done < liste_fichiers.txt
5/ Vous devez retrouver votre fichier archive.tar.gz dans le répertoire racine de votre projet.

NB: Pour que le script fonctionne, il faut que les chemins dans le fichier texte soit de la forme suivante :
chemin_www/sous_repertoire/nom_fichier.php

Voir aussi :
http://linuxfr.org/forums/30/21469.html