Kann mir jemand sagen, ob es möglich ist, | dies, ohne eine physische Datei irgendwo zwischen A und B.tar.gz erstellen zu müssen?
Das versuche ich zu tun:
- Datei A
- Benennen Sie A in B um
- Tar B.tar
- gzip -9 B.tar.gz
Also zum Beispiel:
cp A B | tar cvf - B | gzip -9 B.tar.gz
cp A B
?mv
.A
anB
erster Stelle .Antworten:
Die folgenden Beispiele können verwendet werden, um das Erstellen von Zwischendateien zu vermeiden:
teer mit gzip:
tar cf - A | gzip -9 > B.tar.gz
gzip ohne teer:
gzip -9c A > B.gz
teer ohne gzip:
tar cf B.tar A
Das Umbenennen (Verschieben)
A
aufB
zuerst ergibt für mich keinen Sinn. Wenn dies beabsichtigt ist, dann stelle einfach einen dermv A B &&
beiden oben genannten Befehle vor und tauscheA
mitB
dort.Beispiel mit tar und gzip:
mv A B && tar cf - B | gzip -9 > B.tar.gz
quelle
Es hängt von Ihrer Version von tar ab
Wenn Sie die Version haben, die Member-Transformationen unterstützt (--transform oder --xform), können Sie dies einfach tun
die | gzip -9> B.tar.gz kann vermieden werden, wenn Ihr tar die Option -z unterstützt
Wenn Ihre Version von tar --transform nicht unterstützt, müssen Sie zuerst die Datei kopieren, z
Wenn Sie jedoch nur eine Datei komprimieren, überspringen Sie einfach den Teer-Teil
quelle
Wenn Sie
cp
eine Kopie mit einem anderen Namen / Speicherort erstellen, geben Sie beim Erstellen der vollständigen .gzip-Datei einfach den vollständigen / endgültigen Pfadnamen an:quelle
tar -czf - some-folder > some-archive.tar.gz
?