Vous semblez avoir mal compris la signification de -C(ce qui n’est pas étrange, mais documenté vaguement). Pour plus de détails, voir serverfault.com/q/416002/86283 .
NN
Réponses:
48
La façon simple, si vous n'êtes pas particulièrement besoin d'utiliser -Cpour dire tarau 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.gzet la placer à file1partir 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 file1est dans /tmp, vous /var/spoolvoulez 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 vdrapeau si vous voulez voir ce qui tarse passe réellement.
@NN Absolument, mais comme nous n'avons aucune idée de ce qu'il en $PWDest, il semblait plus sûr d'utiliser un chemin absolu dans l'exemple.
un CVn
En effet, j’ai pensé qu’il était logique d’inclure cela pour montrer que c’était une option disponible pour résoudre le problème.
NN
De cette façon, le chemin de file1l'archive tar sera /tmp. Cela peut être ou ne pas être ce que vous attendez.
mouviciel
8
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
(ce qui n’est pas étrange, mais documenté vaguement). Pour plus de détails, voir serverfault.com/q/416002/86283 .Réponses:
La façon simple, si vous n'êtes pas particulièrement besoin d'utiliser
-C
pour diretar
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.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: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 quitar
se passe réellement.la source
$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)
la source
-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.
la source
A fonctionné parfaitement
la source