سؤال

TAR -XVZF $ filename.tar.gz || {خروج $؟ }

هنا سيتم إنهاء البرامج النصية الخاصة بي مع ErrorCode 141. أنا أستخدم Fedora Core 6 مع TAR الإصدار 1.15

لن يحدث ذلك طوال الوقت، ولكن أكثر من 70 في المئة من الوقت فشل.

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

المحلول 3

كحل مؤقت الآن نستخدم CPIO للأرشفة، التي تعمل بشكل جيد بالنسبة لنا الآن، على الرغم من أنني أريد أن أعرف لماذا يتسبب القطران في هذه المشكلة، فإن حولها لفترة طويلة، وتستخدم كأداة قياسية لسنوات.

نصائح أخرى

أدرك أن هذا الموضوع يبلغ عمره أكثر من بضع سنوات، لكنني أعلم على هؤلاء الأشخاص الذين يتعثرون على هذا الموضوع مع الخطأ.

عند استخدام خيار ضغط، يفتح TUR ضمنيا اتصالا بالبرنامج الأساسي باستخدام أنبوب. لذلك، في مثال OP: tar -xvzf $filename.tar.gz, ، ما يطرح القطران في الواقع شيء مشابه لهذا: gunzip $filename.tar.gz | tar -xv -. وبعد يمكنك التحقق من ذلك عن طريق تشغيل top, ، حيث سترى عمليا (واحد للقطران وواحد ل gzip).

في بعض الأحيان على الرغم من أن خط الأنابيب نفسه يكسر. على سبيل المثال، إذا كان الملف ليس ملف Gzip. خذ هذا على سبيل المثال: tar -xvzf somefile.iso, ، والتي ستكون تعادل gunzip somefile.iso | tar -xv -. وبعد في مثل هذه الحالة، سيقوم GZIP بالخروج. عندما تخطئ Gzip، سيتم كسر خط الأنابيب. احتمال آخر سيكون إذا كان ملف Gzip صحيحا، لكن ملف القطران داخله كان فاسدا. في هذه الحالة، يبدأ Gzip إرسال الدفق غير المضغوط إلى القطران، ولكن بعد ذلك، يدرك القطران شيئا خطأ ويغلق الدفق. سيكون Gzip هنا بعد ذلك، لأنه إغلاق إخراج.

في قيم الخروج، تشير قيمة أعلى من 128 إلى الإنهاء بسبب إشارة، وبلغ المبلغ فوق 128 أي إشارة تسبب الإنهاء. لذلك، إذا طرحنا 128 من رمز الخروج من 141، نحصل على 13، والذي يتوافق مع Sigpipe (man 7 signal للحصول على قائمة الإشارات القياسية وقيمها الصحيحة المقابلة).

يسرد صفحة الرجل تعليق SIGPIPE ك "أنبوب مكسور: الكتابة إلى الأنبوب مع عدم وجود قراء". إذن، يبدو أن Gzip يحاول الكتابة إلى الأنبوب، لكن القطران قد توقف عن الاستماع. تخميني هنا هو أن GZIP غير مضغوط على الملف بنجاح، لكن الدفق غير المضغوط ليس أرشيفا صالحا للقطرات. نصيحتي هنا ستكون لتشغيل Gunzip على الملف، ثم قم بتشغيل القطران في ملف النتيجة ومعرفة أي منها فشل (استنادا إلى Sigpipe، أعتقد أن القطر سيفشل). في كلتا الحالتين، يبدو أن الملف غير قابل للقراءة بواسطة هذه الإصدارات من الأدوات (إما فساد أو تعارض إصدار من نوعه).

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

إرجاع جنو القطرين فقط بعض الأشياء، لا أحد منهم -141. ومع ذلك، إذا كان تشغيل جزءا فرعي، مثل GZIP، وتنتهي هذه العملية بشكل غير طبيعي، فإنها تعود الذي - التي رمز الإرجاع.

لست متأكدا مما قد تكون فيه الإعانات الفرعية. جربه --verbose ومعرفة ما إذا كنت تحصل على أي أدلة.

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