سؤال كيف تقوم بنسخ ملف ما وحفظ ملف .gz؟


السلوك الافتراضي من gunzip هو حذف ملف .gz بعد أن يزيل ضغطه.

كيف أمنعه من حذف الملف؟

إذا لم يتم تضمين هذه الوظيفة ، فهل هناك برنامج بديل يسمح بذلك؟

أنا أستخدم Ubuntu 9.04


209
2017-09-23 14:45


الأصل


استخدم الأمر التالي: gunzip -k - fazineroso
ما هو gunzip -k الخيار؟ لا أرى أحدا. - Znik
Znik، غزيب / غونزيب الإصدار 1.6 وأعلى لديه الخيار -k. - alexander barakin


الأجوبة:


أنت تبحث عن:

gzcat x.txt.gz >x.txt

ال gzcat الأمر يعادل gunzip -c الذي يكتب ببساطة تدفق الانتاج ل stdout. هذا سيترك الملف المضغوط دون تغيير. لذلك يمكنك أيضًا استخدام:

gunzip -c x.txt.gz >x.txt

لاحظ أنه في بعض الأنظمة gzcat يُعرف أيضًا باسم zcat حتى تشغيل مثل هذا بدلا من ذلك:

zcat x.txt.gz >x.txt

210
2017-09-23 14:48



شكرا على الاجابة. يكبر مع pkunzip في DOS أجد أنه من الغريب أنه لا يوجد خيار للحفاظ على الملف. خصوصا مع أداة مثل gzip يجري استخدامها على نطاق واسع ... فقط غريب. - Sen
لمعلوماتك ، أنا لا أملك بالفعل gzcat. لا النظام المحلي الخاص بي أو النظام كنت ssh'ed في. لذلك ، لا بد لي من استخدام gunzip -c - Sen
انها ربما zcat فقط على النظام الخاص بك. - user23307
خيار إضافي للحفاظ على الملف سيكون لطيفًا بالفعل. على سبيل المثال ، يستخدم b (un) zip2 بنية مشابهة ويتيح ببساطة إضافة -k للحفاظ على الملف الأصلي. - schnaader
يمكنك أيضًا إضافة السطر المستعار المستعار gzcat = "gunzip -c" إلى .bashrc - James Kingsbery


يمكنك استعمال ال -c خيار gunzip الذي يكتب الإخراج إلى stdout ، ثم توجيهه إلى الملف الذي تختاره:

gunzip -c compressed-file.gz > decompressed-file

مزيد من التفاصيل حول صفحة دليل.


52
2017-09-23 14:50



بالمناسبة ، لاحظ أن صفحة الرجل المشار إليها أعلاه تسرد خيار -k ، مما يعني الاحتفاظ بملفات الإدخال. ربما هذا يعمل على إصدار BSD ، لكنه لا يعمل في نظامي ، لذا يبدو أن الحل -c هو الحل الصحيح.


الحل الأبسط هو مجرد استخدام gunzip كفلتر مثل هذا:

gunzip < myfile.gz > myfile

31
2017-09-23 17:30



أعتقد أن هذا هو أنظف طريقة منذ ذلك الحين gunzip لا يعرف أبدًا الملف الذي يحصل عليه ، كل ما يراه هو عبارة عن مجموعة من البيانات ، لذا لا يمكن تغيير الملف الأصلي. - Walf


إذا كان في الواقع تاربال (.tgz أو. tar.gz ملحق) ، ثم بدلا من إعادة توجيه إلى ملف مثل كل الإجابات حتى الآن ، سترغب في الأنابيب إلى القطران ، مثل:

gunzip -c myfile.tar.gz | tar xvf -

بحيث تحصل على المحتويات الفعلية.


12
2017-09-23 15:22



أو فقط أفعل: tar xzvf myfile.tar.gz - Joakim Elofsson
صحيح ، ولكن فقط إذا كان لديك غنو. فالذي يأتي مع Solaris ، على سبيل المثال ، لا يدعم الخيار z. - Alex


استخدم ال -c الخيار لإلغاء ضغط الملف إلى stdout. لن تلمس الملف الأصلي.

gunzip -c myfile.gz > myfile

5
2017-09-23 14:52





gzip -dk myfile.gz

أو

gunzip -k myfile.gz

تعليقات:

   -k --keep    Keep (don't delete) input files during compression or decompression.

3
2017-11-05 12:55





يمكن لقانون Gnu قراءة ملفات gzip: tar -zxsvf myfile.tar.gz أو tar -jxzvf myfile.tar.bz2 لملفات القطران bzipped.


2
2018-01-31 16:14