Saya harus membuat arsip dengan perintah gzip (bukan tar - itu perlu) dan arsip harus berisi file dari direktori lain - misalnya, / etc. Saya mencoba menggunakan perintah
gzip myetc.gz /etc
Tapi itu tidak berhasil.
Saya harus membuat arsip dengan perintah gzip (bukan tar - itu perlu) dan arsip harus berisi file dari direktori lain - misalnya, / etc. Saya mencoba menggunakan perintah
gzip myetc.gz /etc
Tapi itu tidak berhasil.
Jawaban:
Gzip hanya berfungsi dengan satu file, atau aliran - data yang disalurkan ke gzip. Jadi pertama-tama Anda perlu membuat satu file, seperti dengan tar, dan kemudian Anda bisa gzip itu. Opsi lainnya adalah gzip semua file individual, dan kemudian tar itu menjadi satu file.
Kedua solusi ini bodoh dan tidak boleh digunakan. Anda harus menggunakan tar dengan opsi kompresi bawaan dan lakukan semuanya dalam satu perintah.
.tar.gz
...
cat filename | grep blah
bodoh. Ini juga jauh kurang optimal karena akan menggunakan ruang sementara yang besar. Saya tidak tahu apakah saya akan menyebutnya bodoh sebanyak tidak beralasan, suboptimal, dan umumnya hanya semacam jelek. Yah, kerja bodoh juga.
fork()
.
gzip
bekerja dengan file, bukan direktori. Karenanya untuk membuat arsip direktori yang perlu Anda gunakan tar
(yang akan membuat tarball tunggal dari banyak file):
tar cvf myetc.tar /etc
atau, untuk arsip yang di-gzip:
tar cvzf myetc.tar.gz /etc
cd / ; tar cf - ./etc | gzip -c - > myetc.tar.gz
(jika Anda bertanya-tanya mengapa saya tar "./etc" bukan "/ etc", itu karena pada sistem yang lebih tua, ketika menggunakan tar xvf, itu akan ditampilkan ke / etc dan menimpa itu ... [atau Anda harus menggunakan "pax" dalam kasus itu]). Perintah terbalik, yaitu untuk mengekstrak arsip itu di bawah "/ suatu tempat": cd /somewhere ; gzip -dc < /the/location/of/myetc.tar.gz | tar xvf -
Jika Anda benar-benar tidak memiliki tar yang tersedia, Anda dapat menggunakan gzip untuk membuat cadangan direktori menggunakan opsi (-r - secara rekursif), tetapi mungkin itu bukan apa yang Anda harapkan ...
Pertama, Anda perlu menyalin direktori Anda ke nama lain, jika Anda ingin menjaga direktori asli tidak tersentuh.
#cp -a directory my_gzip_alone_backup
Kedua, Anda akan memampatkan semua file pada direktori secara rekursif (-r).
#gzip -r my_gzip_alone_backup
Sekarang mari kita lihat di dalam my-gzip-alone-backup. Anda tidak akan memiliki satu file myfile.gz seperti yang Anda harapkan, tetapi banyak file gzip secara rekursif. Tapi itu tidak baik untuk melakukannya dengan dll karena symlink ...
Untuk membuka direktori, logika yang sama dapat diterapkan dengan gunzip.
Cara lain adalah dengan mengubah direktori menjadi satu file, jika Anda tidak memiliki tar untuk melakukan itu, tetapi memiliki util dd, seperti ditunjukkan dalam posting ini: /ubuntu/626634/converting-a -file-ke-direktori
gzip
tidakzip
. Mereka adalah alat berbeda yang bekerja secara berbeda.