web-dev-qa-db-fra.com

Comment tar / untar la sortie à la volée

Quelle est la manière idiomatique de faire ce qui suit

  • goudron à stdout
  • lisez cette sortie de tar depuis stdout et extrayez-la dans un autre dossier.

Ma solution est tar --to-stdout .. | tar -C somefolder -xvf -

Mais peut-être y a-t-il une manière plus idiomatique de le faire.

24
shabunc

Le même -f - option fonctionne également pour le tarage.

tar -cf - something | tar -C somefolder -xvf -

GNU tar utilise stdio par défaut:

tar -c something | tar -C somefolder -xv

rsync est également populaire.

rsync -av something/ somefolder/
31
grawity

Il suffit d'ajouter un autre cas d'utilisation ici. J'avais une grande structure de répertoires sur un système presque à court d'espace disque et je voulais me retrouver avec un fichier tar.gz de la structure de répertoires sur une autre machine disposant de beaucoup d'espace.

tar -czf - big-dir | ssh user@Host 'cat > /path/to/big-dir.tar.gz'

Cela vous évite des frais généraux de réseau et vous évite d'avoir à vous soucier d'utiliser rsync pour le transfert.

8
quickshiftin