Cela ne fonctionne pas:
tar xf /tmp/foo.tar.gz foo/bar
tar: foo/bar: Not found in archive
Ce n'est pas évident pour moi ce qui ferait cela au-delà de l'extraction en place et du déplacement des fichiers.
De man tar
:
-C directory
In c and r mode, this changes the directory before adding the
following files. In x mode, change directories after opening the
archive but before extracting entries from the archive.
c'est-à-dire, tar xC /foo/bar -f /tmp/foo.tar.gz
devrait faire le travail. (sur FreeBSD, mais le tar GNU est fondamentalement le même à cet égard, voir "Changer le répertoire de travail" dans son manuel )
si vous voulez extraire une archive tar ailleurs, cd dans le répertoire de destination et décompressez-la là:
La commande que vous avez utilisée rechercherait le fichier
foo/bar
dans l'archive et l'extrait.la source
Faire:
ferait le travail.
Fondamentalement, ce qui se produit est de générer un nouveau shell (les parenthèses), dans ce sous-shell, changez de répertoire
foo/bar
et décompressez le fichier.Vous pouvez modifier le
;
par un&&
pour être sûr que toutcd
fonctionne bien.la source
vous pouvez donner un nom de fichier avec le
./file
fichier après tar.s'il fonctionne, cela signifie que vous avez créé un tar avec
./
. utilisez moins de commande pour voir le contenu tar.la source
J'ai rencontré ce qui semble être un problème similaire et je l'ai résolu.
Le problème était dans la création du fichier plutôt que dans le fichier créé.
Lors de la tentative de tarage et de transfert d'un fichier dans le répertoire A, j'ai fourni le chemin d'accès au fichier d'origine dans la commande tar
Ce que j'ai pu résoudre, c'est
Lors du transfert et de l'extraction de l'archive tar, les sous-répertoires requis sont créés.
la source
Modifiez le répertoire dans lequel vous souhaitez extraire
si l'emplacement du fichier d'extraction sous /u01/backup.tar alors
Extrayez comme suit:
la source
La commande:
tar -xzvf foo.tar.gz -C /home/user/bar/
va extraire le fichier d'entrée "foo.tar.gz", dans le répertoire
/home/user/bar
, tout en imprimant les fichiers traités.la source