web-dev-qa-db-fra.com

Comment extraire une archive, en sautant certains des principaux répertoires?

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

5
Bakhtiyor

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 ./
6
dv3500ea

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 commande
  • c - crée une archive
  • t - liste le contenu d'une archive
  • j - 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)
12
Lekensteyn

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" .
0
Ryan Gooler