استخراج tar.gz برمجيًا في خطوة واحدة (على نظام التشغيل Windows المزود بـ 7zip)

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

سؤال

مشكلة: أود أن أتمكن من استخراج ملفات tar.gz في خطوة واحدة.وهذا يجعل سؤالي بالكاد مماثلة لهذا واحد: سؤال Stackoverflow لـ tar-gz.

سؤالي هو بالكاد نفس الشيء، ولكن ليس هو نفسه، لأنني أرغب في القيام بذلك على نظام التشغيل Windows باستخدام سطر أوامر 7zip (أو شيء مشابه) داخل ملف Bat أو البرنامج النصي Ruby/Perl/python.

سؤال: أثبتت هذه المهمة التي تبدو بسيطة أنها أكثر تعقيدًا مما قد يبدو عليه المظهر الأول.هل لدى أي شخص برنامج نصي يفعل هذا بالفعل؟

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

المحلول

7z e example.tar.gz  && 7z x example.tar

يستخدم && الجمع بين اثنين من الأوامر في خطوة واحدة. استخدم 7Zip Portable (ستحتاج إلى 7Z.exe و 7Z.DLL فقط)

نصائح أخرى

سؤال قديم، لكنني كنت أواجه صعوبة في حله اليوم، لذا فإليك درجتي 2C.يمكن لأداة سطر الأوامر 7zip "7z.exe" (التي قمت بتثبيت الإصدار 9.22 منها) الكتابة إلى stdout والقراءة من stdin حتى تتمكن من الاستغناء عن ملف tar الوسيط باستخدام الأنبوب:

7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"

أين:

x     = Extract with full paths command
-so   = write to stdout switch
-si   = read from stdin switch
-aoa  = Overwrite all existing files without prompt.
-ttar = Treat the stdin byte stream as a TAR file
-o    = output directory

راجع ملف المساعدة (7-zip.chm) في دليل التثبيت لمزيد من المعلومات حول أوامر ومفاتيح سطر الأوامر.

مثل ذُكر بواسطة @zespri سيقوم Powershell بتخزين الإدخال في عملية 7z الثانية، لذا يمكن أن يستهلك قدرًا كبيرًا من الذاكرة إذا كان ملف tar الخاص بك كبيرًا.أي:

& 7z x "somename.tar.gz" -so  | & 7z x -aoa -si -ttar -o"somename"

الحل البديل من هذه الإجابة SO إذا كنت تريد القيام بذلك من بوويرشيل، قم بتمرير الأوامر إلى cmd.exe:

& cmd.exe '/C 7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"'

استخدم ال Win32 Port of Tar.

tar -xvfz filename.tar.gz

نظرًا لأنك طلبت 7-ZIP أو شيء مشابه ، فأنا أقدم أداة بديلة تم كتابتها لحالة الاستخدام الدقيقة الخاصة بك.

ال فائدة tartool هي أداة مجانية ومفتوحة المصدر مصممة باستخدام مكتبة .NET Sharpziplib.

مثال على استخراج أ .tar.gz / .tgz - ملف،

C:\>TarTool.exe D:\sample.tar.gz ./

إخلاء المسئولية: أنا مؤلف هذه الأداة.

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