J'archive un dossier en utilisant la commande suivante:
tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/
Ensuite, j'extrais en utilisant:
tar jxf forum.tar.bz2 ./
Il extrait correctement, mais crée le dossier /home/username/forum/var/www/forum
. Que dois-je faire pour l'extraire dans le dossier /home/username/forum
?
Je vous remercie
Lors de la création de l'archive, utilisez -C /var/www/
pour modifier le répertoire actuel en/var/www lors de la création de l'archive.
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
Cela fera en sorte que le dossier 'forum' se trouve au plus haut niveau de l'archive et sera donc extrait directement dans le dossier actuel lorsque vous exécuterez:
tar jxf forum.tar.bz2 ./
En plus de réponse de dv3500ea , vous pouvez utiliser la commande suivante pour extraire les archives contenant var/www/forum/
à forum/
:
tar xjf forum.tar.bz2 --strip-components=2
var/
et www/
sont deux composants de chemin, d'où le 2
dans --strip-components
.
Si vous n'êtes pas sûr du contenu d'une archive, utilisez l'option t
:
tar tjf forum.tar.bz2
Passez-le less
de manière à utiliser les touches fléchées pour le défilement.
Une note générale sur les options utilisées:
x
- extrait une archive, je la place toujours comme première option car il est plus logique de voir ce que fait une commandec
- crée une archivet
- liste le contenu d'une archivej
- fait en sorte que tar décompresse les archives compressées bzip2. Ceci est redondant avec l'extension .bz2
, vous pouvez donc également supprimer cette option.f
- cette option attend un nom de fichier comme argument, c'est soit l'archive à extraire (tar xf file.tar.bz2
) ou créée (tar cf file.tar.bz2
)La solution rapide (et peut-être fausse) serait de changer votre commande pour changer de répertoire avant de lancer. C'EST À DIRE:
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .