كيفية استخراج الملفات إلى دليل آخر باستخدام' القطران ' الأمر?

اعتقدت tar archive.tar /users/mylocation سينجح, لكنه لا ينجح, كيف يمكنني فعل ذلك?

لاستخراج أرشيف إلى دليل مختلف عن الحالي ، استخدم -C، أو --directory، خيار القطران ، كما في

tar -xf archive.tar -C /target/directory

لاحظ أن الدليل الهدف يجب أن يكون موجودا قبل تشغيل هذا الأمر (يمكن إنشاؤه بواسطة mkdir /target/directory).

قراءة الصفحة اليدوية (القيادة: man tar) للحصول على خيارات أخرى.

لاحظ أنه إذا كانت كرة القطران تحتوي بالفعل على اسم دليل تريد تغييره ، فأضف --strip-components=1 الخيار:

tar xf archive.tar -C /target/directory --strip-components=1

الجمع بين الإجابات والتعليقات السابقة:

ببساطة استخراج محتويات وإنشاء الدليل الهدف إذا كان مفقودا:

mkdir -p /target/directory && tar xf archive.tar -C /target/directory

لاستخراج وأيضا إزالة الجذر(المستوى الأول) الدليل في الرمز البريدي

mkdir -p /target/directory && tar xf archive.tar -C /target/directory --strip-components=1

خيار آخر هو استخدام one مستوى واحد أعلى. سيؤدي هذا تلقائيا إلى إنشاء دليل استنادا إلى اسم الملف الأصلي.

tar zxvf filename.tgz --one-top-level

بالإضافة إلى ذلك إذا كنت تريد ، يمكنك تحديد الخاصة بك وسوف القطران إنشائه تلقائيا.

tar zxvf filename.tgz --one-top-level=new_directory

ما وجدته مثيرا للاهتمام فيما يتعلق بالاستخراج هو أنه يعتمد على كيفية إنشاء الأرشيف ، راجع هذا المثال

cd /tmpmkdir foldertouch folder/file.txt

عندما تفعل tar -zcvf folder.tar.gz folder كل شيء كما هو متوقع = عندما كنت أونتار الآن سيكون أونتاريد (مجلد سيتم إنشاء ، إذا قمت بإزالته) كما /tmp/folder/.

ولكن ، عندما تقوم بإنشاء القطران كما tar -zcvf tmp-folder.tar.gz /tmp/folder وكنت أونتار في / مجلد تمب ، فإن النتيجة ستكون /tmp/tmp/folder الدليل ! في مثل هذه الحالة ، يجب عليك فكها / - tar -xf tmp-folder.tar.gz -C /

@أوجوال الغناء: في الواقع ، صفحة رجل القطران ليست مفيدة. ويصف “- ج دير “باسم” التغيير إلى دليل دير”. والأسوأ من ذلك: "أرشيف تار-سي ميدير شف.القطران “لا يعمل ، في حين” القطران شف الأرشيف.القطران-ج ميدير " يفعل.

أيضا '- ج ، directory دليل دير \ ن تغيير إلى دليل دير 'ينبغي بدلا من ذلك وصفها بأنها' تغيير دليل الإخراج إلى دير (سوف تفشل إذا دير غير موجود)' شكرا @ميش. انظر أيضا إجابة بريان لارسن.

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