Ingin memperbaiki pertanyaan ini? Tambahkan detail dan perjelas masalahnya dengan mengedit postingan ini.
Ditutup 4 tahun yang lalu.
Perbaiki pertanyaan ini
Bagaimana saya bisa membuka kompresi dan mengarsipkan file .tar.gz menggunakan cat, tar dan gzip pada satu baris perintah? Apakah ini mungkin?
Jawaban yang Diterima:
Tidak perlu cat
atau gzip
:
$ tar xvzf archive.tar.gz
String opsi memberitahu tar
untuk mengekstrak (x
) dalam mode verbose (v
) yang dikompresi (z
) arsip mengikuti f
bendera.
Menggunakan semua cat
, tar
dan gzip
(yang konyol, jangan lakukan ini ):
$ cat archive.tar.gz | gzip -d -c | tar xvf -
atau
$ gzip -d -c archive.tar.gz | cat | tar xvf -
Saat diberi -
sebagai nama file, tar
akan membaca arsip dari input standar.
Dua contoh terakhir mengalami apa yang biasa disebut “Penggunaan cat
yang tidak berguna “, karena satu-satunya cat
lakukan adalah mengacak data ke bagian berikutnya dari pipeline.
Versi yang sedikit lebih baik, tanpa cat
:
$ gzip -c -d archive.tar.gz | tar xvf -
Ini sebenarnya bisa menjadi hal yang berguna untuk mengetahui bagaimana melakukannya pada sistem di mana tar
tidak tahu cara menangani arsip terkompresi.
String opsi kuno yang saya gunakan untuk tar
di atas, tanpa tanda hubung (-
) di depannya, berasal dari waktu sebelum tanda hubung biasa digunakan untuk menentukan opsi baris perintah. Utilitas lain yang tidak menggunakan sintaks opsi reguler termasuk dd
dan mt
, tetapi sebagian besar implementasi tar
hari ini mengerti opsi tanda hubung yang lebih baru, dd
biasanya tidak. mt
command (yang mengontrol operasi pita magnetik) telah memperoleh beberapa opsi tanda hubung (terutama di Linux), tetapi satu-satunya bagian non-opsional dari baris perintah masih merupakan perintah yang ingin Anda lakukan di drive, seperti rewind
atau eof
.