Quelqu'un peut-il me dire s'il est possible de canaliser | cela sans avoir à créer un fichier physique n'importe où entre A et B.tar.gz?
Voici ce que j'essaie de faire:
- Déposer un
- Renommez A en B
- Tar B.tar
- gzip -9 B.tar.gz
Ainsi, par exemple:
cp A B | tar cvf - B | gzip -9 B.tar.gz
cp A B
?mv
.A
enB
premier.Réponses:
Les exemples suivants peuvent être utilisés pour éviter de créer des fichiers intermédiaires:
goudron avec gzip:
tar cf - A | gzip -9 > B.tar.gz
gzip sans goudron:
gzip -9c A > B.gz
goudron sans gzip:
tar cf B.tar A
Renommer (déplacer)
A
enB
premier n'a pas de sens pour moi. Si cela est prévu, mettez simplement unmv A B &&
avant l'une des commandes ci-dessus et échangezA
avecB
là.Exemple avec tar et gzip:
mv A B && tar cf - B | gzip -9 > B.tar.gz
la source
Cela dépend de votre version de tar
Si vous avez la version qui prend en charge les transformations de membres (--transform ou --xform), vous pouvez simplement faire
le | gzip -9> B.tar.gz peut être évité si votre tar prend en charge l'option -z
Si votre version de tar ne prend pas en charge --transform, vous devrez d'abord copier le fichier, par exemple
Cependant, si vous ne compressez qu'un fichier, pourquoi ne pas sauter la partie tar tous ensemble et faire
la source
Si vous utilisez
cp
pour faire une copie avec un nom / emplacement différent, incluez simplement le chemin complet / final que vous souhaitez lors de la création de votre fichier .gzip terminé:la source
tar -czf - some-folder > some-archive.tar.gz
?