سؤال 7Zip - سطر الأوامر: استبعاد مجلد (مجلدات) بواسطة نمط حرف بدل؟


أي فكرة عن كيفية استبعاد مسار (مسارات) متوحشة من سطر الأوامر في سطر الأوامر 7zip؟

أنا أفعل شيئا هذا:

7z.exe a -t7z archive.7z FolderToArchive\ -mx0

وترغب في استبعاد أي \bin\*.* أو \obj\*.* المجلدات الموجودة أسفل "FolderToArchive". لاستبعاد الملفات ، يمكنك استخدام -x معامل. يعطي ملف التعليمات هذا المثال لاستخدامه -x:

7z a -tzip archive.zip *.txt -x!temp.*

هذا رائع لاستبعاد ملف. ولكن ، مرة أخرى ، أرغب في استبعاد مجلد محدد بدل. تحت بلدي "FolderToArchive" هناك عدة مجلدات ، قد يكون أو لا يكون ضمن هذه المجلدات bin\ و obj\ المجلدات. أود عدم تضمين هذه في الأرشيف.

لقد حاولت أنماطًا مثل:

-x!bin\* -x!bin\*.* -x!\bin\* -x!\bin\*.* -x!\\bin\\* -x!\\bin\\*.*

لا شيء يبدو استبعاد. هل هذا مجرد قيود على 7ZIP؟


97
2018-01-18 15:37


الأصل




الأجوبة:


لاستبعاد بن و الكائنات المجلدات بشكل متكرر يمكنك استخدام الأمر:

7z.exe a -t7z archive.7z FolderToArchive\ -mx0 -xr!bin -xr!obj

117
2018-01-18 15:53



لأي شخص آخر: إذا كنت تريد تجاهل الملفات الموجودة في الدليل الجذر فقط ، فاستخدم -xr0!*.zip - على الأقل لم أستطع الحصول عليها للعمل بدون r0. - Oliver
أيضًا ، إذا كان هذا في سطر أوامر Linux / Unix ، فقد تحتاج إلى الإحاطة في علامات اقتباس مفردة ، لعدم إضافة معالجة مسبقة بواسطة shell ، على سبيل المثال ، '-x!$RECYCLE.BIN' لاستبعاد سلة المحذوفات لمحرك أقراص خارجي. - thanosa75


لتجنب الخطأ ، استخدم -r أو -xr بعناية.

لنفترض أن لديك أدلة مثل:

.\path1\path2\bin
.\path1\path2\src
.\path3\path4\path5\bin
.\path3\path4\path5\src

و قم بتشغيل الأمر:

7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -xr!bin

ما الذي حصلت عليه في archive.7z:

.\path2\src
.\path5\src

هذا هو .\path2\ و .\path5\ أصبح أعلى مجلد في archive.7z ، وكلاهما bin تم استبعاد الدلائل.

-x يعتمد فقط مسار / اسم الملف نسبيا إلى المجلد العلوي في الأرشيف.

لذا ، إذا كنت تريد استبعادها فقط .\path1\path2\binولكن لتضمين كل الدلائل الأخرى "bin" ، يجب أن يكون الأمر على النحو التالي:

7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -x!path2\bin

حاولت استخدام المسار المطلق في إكس ، ولكن لم تنجح أبدا.


تحديث:

هناك خيار -spf في 7z لنظام التشغيل Linux الذي يعمل مع المسار المطلق.

بالنسبة الى ماركو، -spf يتوفر أيضًا على نظام التشغيل Windows من 7-zip 15.14


11
2018-03-01 10:27



ملاحظة: على الأقل على أوبونتو ، ننصحك بوضع جميع هذه العبارات في علامات تنصيص مفردة '-x!path2\bin' لعدم الوقوع في استبدال shell ... (مما يتيح لك الحصول على "أمر" غير صحيح من الناحية التركيبية ...) - Frank Nocke
للإشارة إلى تعليقFrankNocke ، يمكنك القيام بذلك أيضًا على النوافذ للسماح بالنقاط في أسماء المجلدات: '-xr!\.foo' - DonBecker