Adakah yang bisa memberi tahu saya jika mungkin untuk pipa | ini tanpa harus membuat file fisik di mana saja antara A dan B.tar.gz?
Inilah yang saya coba lakukan:
- File A
- Ganti nama A ke B
- Tar B.tar
- gzip -9 B.tar.gz
Jadi misalnya:
cp A B | tar cvf - B | gzip -9 B.tar.gz
cp A B
?mv
.A
keB
pertama.Jawaban:
Contoh-contoh berikut dapat digunakan untuk menghindari membuat file perantara:
tar dengan gzip:
tar cf - A | gzip -9 > B.tar.gz
gzip tanpa tar:
gzip -9c A > B.gz
tar tanpa gzip:
tar cf B.tar A
Mengganti nama (pindah)
A
menjadi yangB
pertama tidak masuk akal bagi saya. Jika ini dimaksudkan, maka cukup letakkanmv A B &&
sebelum salah satu dari perintah di atas dan bertukarA
denganB
sana.Contoh dengan tar dan gzip:
mv A B && tar cf - B | gzip -9 > B.tar.gz
sumber
Itu tergantung pada versi tar Anda
Jika Anda memiliki versi yang mendukung transformasi anggota (--transform atau --xform) maka Anda dapat melakukannya
itu | gzip -9> B.tar.gz dapat dihindari jika tar Anda mendukung opsi -z
Jika versi tar Anda tidak mendukung --transformasi maka Anda hanya perlu menyalin file mis
Namun jika Anda hanya mengompresi satu file, mengapa tidak melewatkan bagian tar secara bersamaan dan lakukan saja
sumber
Jika Anda menggunakan
cp
untuk membuat salinan dengan nama / lokasi yang berbeda, maka cukup sertakan pathname lengkap / final yang Anda inginkan saat membuat file .gzip Anda yang sudah selesai:sumber
tar -czf - some-folder > some-archive.tar.gz
?