كيف يمكنني استعادة الملفات من أرشيف .tar.gz التالف؟

StackOverflow https://stackoverflow.com/questions/201392

  •  03-07-2019
  •  | 
  •  

سؤال

لدي عدد كبير من الملفات في أرشيف .tar.gz.التحقق من نوع الملف باستخدام الأمر

file SMS.tar.gz

يعطي الرد

gzip compressed data - deflate method , max compression

عندما أحاول استخراج الأرشيف باستخدام gunzip، أتلقى الرسالة بعد تأخير

gunzip: SMS.tar.gz: unexpected end of file

هل هناك أي طريقة لاستعادة ولو جزء من الأرشيف؟

هل كانت مفيدة؟

المحلول

هل أنت متأكد من أنه ملف غزيب؟ وأود أن أول تشغيل "SMS.tar.gz الملف 'للتحقق من صحة ذلك.

وثم أود أن قراءة rel="nofollow مجموعة الأدوات غزيب استعادة الصفحة.

نصائح أخرى

والانتعاش هو ممكن ولكن ذلك يعتمد على ما تسبب في الفساد.

إذا تم اقتطاع الملف فقط، والحصول على بعض النتائج الجزئية للخروج ليس من الصعب جدا؛ فقط تشغيل

gunzip < SMS.tar.gz > SMS.tar.partial

والتي سوف تعطي بعض الانتاج على الرغم من الخطأ في نهاية المطاف.

وإذا كان ملف مضغوط يحتوي كتل ضخمة مفقودة، انها ميؤوس منها أساسا بعد كتلة تالفة.

إذا تم تلف ملف مضغوط بشكل منتظم في الطرق الصغيرة (مثل نقل ملف ثنائي في وضع ASCII، الذي يحطم الإرجاع وأسطر جديدة في جميع أنحاء ملف)، فمن الممكن لاستعادة ولكن يتطلب قدرا كبيرا من برمجة مخصصة، انها حقا إلا يستحق ذلك إذا كان لديك على الإطلاق أي وسيلة أخرى (أي النسخ الاحتياطي) والبيانات يستحق الكثير من الجهد. (وقد فعلت ذلك بنجاح.) ذكرت هذا السيناريو في سابقة السؤال .

والأجوبة لملفات .zip تختلف إلى حد ما، لأن الرمز البريدي المحفوظات لها عدة أعضاء مضغوط بشكل منفصل، ولذلك لا يوجد المزيد من الأمل (رغم أن معظم الأدوات التجارية هي وهمية بدلا من ذلك، فإنهما ينفيان تحذيرات من مراكز التأهيل المجتمعي الترقيع، وليس عن طريق استعادة البيانات جيدة). ولكن سؤالك كان عن ملف .tar.gz، وهو أرشيف مع عضو واحد كبير.

فيما يلي أحد السيناريوهات المحتملة التي واجهناها.كان لدينا ملف tar.gz لا يمكن فك ضغطه، ومحاولة فك الضغط أعطت الخطأ:

gzip -d A.tar.gz
gzip: A.tar.gz: invalid compressed data--format violated

لقد اكتشفت أن الملف يمكن تم تحميله في الأصل عبر اتصال ftp غير ثنائي (لا نعرف ذلك على وجه اليقين).

كان الحل بسيطًا نسبيًا باستخدام نظام يونكس dos2unix جدوى

dos2unix A.tar.gz
dos2unix: converting file A.tar.gz to UNIX format ...
tar -xvf A.tar
file1.txt
file2.txt 
....etc.

انها عملت!هذا احتمال ضئيل، وربما يستحق المحاولة - قد يساعد شخصًا ما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top