Réponses:
La façon simple, si vous n'êtes pas particulièrement besoin d'utiliser -C
pour dire tar
au changement dans un autre répertoire, est de spécifier simplement le chemin complet vers l'archive sur la ligne de commande. Vous pouvez ensuite figurer dans le répertoire de votre choix pour créer la structure de répertoires de votre choix dans l’archive.
Ce qui suit va créer l’archive /var/www/file.tar.gz
et la placer à file1
partir du répertoire courant (quel qu’il soit), sans information de chemin d’archive.
tar czf /var/www/file.tar.gz file1
Le chemin d'accès (à l'archive, aux fichiers constitutifs ou aux deux) peut bien sûr aussi être relatif. Si file1
est dans /tmp
, vous /var/spool
voulez créer l'archive /var/www
, vous pouvez utiliser quelque chose comme:
tar czf ../www/file1.tar.gz /tmp/file1
Il y a un million de variations sur le thème, mais cela devrait vous aider à démarrer. Ajoutez le v
drapeau si vous voulez voir ce qui tar
se passe réellement.
$PWD
est, il semblait plus sûr d'utiliser un chemin absolu dans l'exemple.
file1
l'archive tar sera /tmp
. Cela peut être ou ne pas être ce que vous attendez.
Je transforme les données compressées en un flux (-), puis renommer et localiser facilement (>) là où je le souhaite (De plus, je tar toujours le chemin relatif (./), il est donc plus facile de gérer la décompression)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
est beaucoup plus idiomatique (et plus court).
Je pense que cela devrait être:
tar czf file.tar.gz -C /var/www/ file1
Ce qui fonctionne pour moi Il vous dit de changer de répertoire puis de choisir un fichier.
-C
(ce qui n’est pas étrange, mais documenté vaguement). Pour plus de détails, voir serverfault.com/q/416002/86283 .