Je pense que vous ne pouvez pas utiliser l'option -C
comme vous le supposez dans cette question.
La section 6.10.1 Changer de répertoire de travail
dans le manuel GNU pour tar
décrit l'option -C
comme suit,
Pour changer de répertoire de travail au milieu d'une liste de noms de fichiers, que ce soit en ligne de commande ou dans un fichier spécifié en utilisant '--files-from' ('-T'), utilisez '--directory' ('-C'). Cela changera le répertoire de travail vers le répertoire spécifié après ce point dans la liste.
'--directory=répertoire'
'-C répertoire'
Change le répertoire de travail au milieu d'une ligne de commande.
Par exemple,
$ tar -c -f jams.tar grape prune -C food cherry
mettra les fichiers 'grape' et 'prune' du répertoire actuel dans l'archive 'jams.tar', suivi du fichier 'cherry' du répertoire 'food'. Cette option est particulièrement utile lorsque vous avez plusieurs fichiers largement séparés que vous voulez stocker dans la même archive.
Notez que le fichier 'cherry' est enregistré dans l'archive sous le nom précis 'cherry', et non pas 'food/cherry'. Ainsi, l'archive contiendra trois fichiers qui semblent tous provenir du même répertoire; si l'archive est extraite avec simplement 'tar --extract', les trois fichiers seront écrits dans le répertoire actuel.
Il y a quelques exemples supplémentaires sur la page du manuel...
Mise à jour :
Je n'ai généralement pas l'habitude de mélanger des fichiers de différents chemins dans un seul tar-ball.
Cependant, si c'est ce que vous désirez, deux choses peuvent être faites,
- Utilisez l'option
-T
avec une liste de répertoires/fichiers que vous voulez regrouper ensemble.
Cela collectera tout avec des préfixes de chemin supplémentaires.
- Utilisez l'option
-h
sur un répertoire 'image de lien'
(vous pouvez en créer un avec un script pour créer des liens vers des fichiers et des répertoires d'intérêt sous un nouveau répertoire vide)
L'option -h
utilisée sur un tel répertoire créera un seul tar-ball qui représente la disposition des fichiers sous ce répertoire.