web-dev-qa-db-fra.com

Comment décompresser un fichier tar.gz dans un autre répertoire

J'ai des archives

* .tar.gz

Comment puis-je décompresser cela dans un répertoire de destination?

248
Mercer
gzip -dc archive.tar.gz | tar -xf - -C /destination

ou, avec GNU tar

tar xzf archive.tar.gz -C /destination
101
Mercer

Vous pouvez utiliser l'option -C (ou --directory si vous préférez de longues options) pour donner le répertoire cible de votre choix si vous utilisez la version Gnu de tar. Le répertoire devrait exister:

mkdir foo
tar -xzf bar.tar.gz -C foo

Si vous n'utilisez pas de tar capable d'extraire dans un répertoire spécifique, vous pouvez simplement cd dans votre répertoire cible avant d'appeler tar; alors vous devrez bien sûr donner un chemin complet à vos archives. Vous pouvez le faire dans un sous-shell de portée pour éviter d'influencer le script environnant:

mkdir foo
(cd foo; tar -xzf ../bar.tar.gz)  # instead of ../ you can use an absolute path as well

Ou, si ni un chemin absolu ni un chemin relatif vers le fichier d'archive ne convient, vous pouvez également l'utiliser pour nommer l'archive en dehors du sous-shell de portée:

TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz
296
Alfe

Extraits myArchive.tar vers /répertoire de destination

Commandes:

cd /destinationDirectory
pax -rv -f myArchive.tar -s ',^/,,'
4
javaPlease42