Czy ktoś może mi powiedzieć, czy możliwe jest | to bez konieczności tworzenia fizycznego pliku pomiędzy A i B.tar.gz?
Oto co próbuję zrobić:
- Plik a
- Zmień nazwę z A na B
- Tar B.tar
- gzip -9 B.tar.gz
Na przykład:
cp A B | tar cvf - B | gzip -9 B.tar.gz
cp A B
?mv
.A
doB
pierwszego.Odpowiedzi:
Aby uniknąć tworzenia plików pośrednich, można użyć następujących przykładów:
smoła z gzip:
tar cf - A | gzip -9 > B.tar.gz
gzip bez tar:
gzip -9c A > B.gz
smoła bez gzipa:
tar cf B.tar A
Zmiana nazwy (przeniesienie)
A
naB
pierwszą nie ma dla mnie sensu. Jeśli jest to zamierzone, po prostu umieśćmv A B &&
przed jednym z powyższych poleceń i wymieńA
zB
nim.Przykład z tar i gzip:
mv A B && tar cf - B | gzip -9 > B.tar.gz
źródło
To zależy od twojej wersji tar
Jeśli masz wersję obsługującą transformacje składowe (--transform lub --xform), możesz po prostu to zrobić
| gzip -9> B.tar.gz można uniknąć, jeśli tar obsługuje opcję -z
Jeśli twoja wersja tar nie obsługuje --transform, musisz najpierw skopiować plik np
Jeśli jednak kompresujesz tylko jeden plik, możesz pominąć część tar razem i po prostu zrobić
źródło
Jeśli używasz
cp
do wykonania kopii o innej nazwie / lokalizacji, po prostu podaj pełną / końcową nazwę ścieżki, którą chcesz utworzyć podczas tworzenia ukończonego pliku .gzip:źródło
tar -czf - some-folder > some-archive.tar.gz
?