.\" -*- coding: UTF-8 -*- .\" -*- nroff -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH XARGS 1 .SH الاسم xargs \- بناء وتنفيذ سطور الأوامر من الدخل القياسي .SH موجز \fBxargs\fP .nh [\fIoptions\fP] [\fIcommand\fP [\fIinitial\-arguments\fP]] .hy . .SH الوصف تُوثق صفحة الدليل هذه نسخة GNU من \fBxargs\fP. يقرأ \fBxargs\fP العناصر من الدخل القياسي، بفواصل الفراغات (التي يمكن حمايتها بعلامات اقتباس مزدوجة أو مفردة أو مائلة خلفية) أو سطور جديدة، ويُنفذ الـ \fIcommand\fP (الـ \fIecho\fP هو المبدئي) مرة واحدة أو أكثر مع أي \fIinitial\-arguments\fP متبوعة بالعناصر المقروءة من الدخل القياسي. تُتجاهل السطور الفارغة في الدخل القياسي. .P يُبنى سطر الأوامر للـ \fIcommand\fP حتى يصل إلى الحد الذي يُحدده النظام (ما لم تُستخدم الخيارات \fB\-n\fP و \fB\-L\fP). سيُستدعى الـ \fIcommand\fP المحدد بالعدد اللازم من المرات لاستنفاد قائمة عناصر الدخل. وبوجه عام، سيكون عدد استدعاءات الـ \fIcommand\fP أقل بكثير من عدد عناصر الدخل. سيكون لهذا عادة فوائد كبيرة في الأداء. يمكن تنفيذ بعض الأوامر بالتوازي بشكل مفيد أيضًا؛ انظر الخيار \fB\-P\fP. .P نظرًا لأن أسماء ملفات Unix قد تحتوي على فراغات وسطور جديدة، فإن هذا السلوك المبدئي غالبًا ما يكون إشكاليًا؛ إذ تُعالج أسماء الملفات التي تحتوي على فراغات و/أو سطور جديدة بشكل غير صحيح بواسطة \fBxargs\fP. في هذه الحالات، من الأفضل استخدام الخيار \fB\-0\fP، الذي يمنع مثل هذه المشاكل. عند استخدام هذا الخيار، ستحتاج إلى التأكد من أن البرنامج الذي يُنتج دخل \fBxargs\fP يستخدم أيضًا محرف عدم (null) كفاصل. إذا كان ذلك البرنامج هو GNU \fBfind\fP على سبيل المثال، فإن الخيار \fB\-print0\fP يفعل ذلك نيابة عنك. .P إذا انتهى أي استدعاء للأمر بحالة 255، سيتوقف \fBxargs\fP فورًا دون قراءة أي دخل إضافي. ويُصدر إشعار خطأ على stderr عند حدوث ذلك. . .SH الخيارات .TP \fB\-0, \-\-null\fP تُنهى عناصر الدخل بمحرف عدم بدلًا من الفراغات، ولا تكون علامات الاقتباس والمائلة الخلفية خاصة (يُؤخذ كل محرف حرفيًا). يُعطل سلسلة نهاية الملف، التي تُعامل مثل أي معامل آخر. مفيد عندما تحتوي عناصر الدخل على فراغات أو علامات اقتباس أو مائلات خلفية. يُنتج خيار GNU find \-print0 دخلًا مناسبًا لهذا الوضع. .TP \fB\-a \fP\fIfile\fP\fB, \-\-arg\-file=\fP\fIfile\fP اقرأ العناصر من \fIfile\fP بدلًا من الدخل القياسي. إذا استخدمت هذا الخيار، يبقى stdin دون تغيير عند تشغيل الأوامر. بخلاف ذلك، يُعاد توجيه stdin من \fI/dev/null\fP. .TP \fB\-\-delimiter=\fP\fIdelim\fP\fB, \-d\fP\fI delim\fP تُنهى عناصر الدخل بالمحرف المحدد. قد يكون الفاصل المحدد محرفًا واحدًا، أو محرف هروب بنمط C مثل \fB\en\fP، أو رمز هروب ثماني أو ست عشري. تُفهم أكواد الهروب الثمانية والست عشرية كما في أمر \fBprintf\fP. المحارف متعددة البايتات غير مدعومة. عند معالجة الدخل، لا تكون علامات الاقتباس والمائلة الخلفية خاصة؛ إذ يُؤخذ كل محرف في الدخل حرفيًا. يُعطل الخيار \fB\-d\fP أي سلسلة نهاية ملف، وتُعامل كأي معامل آخر. يمكنك استخدام هذا الخيار عندما يتكون الدخل من عناصر مفصولة بسطور جديدة ببساطة، رغم أنه من الأفضل دائمًا تصميم برنامجك لاستخدام \fB\-\-null\fP حيثما أمكن ذلك. .TP \fB\-E\fP\fI eof\-str\fP اضبط سلسلة نهاية الملف على \fIeof\-str\fP. إذا ظهرت سلسلة نهاية الملف كسطر دخل، سيُتجاهل ما تبقى من الدخل. إذا لم يُستخدم \fB\-E\fP ولا \fB\-e\fP، فلن تُستخدم أي سلسلة نهاية ملف. .TP \fB\-e\fP[\fIeof\-str\fP], \fB\-\-eof\fP[\fI=eof\-str\fP] هذا الخيار مرادف للخيار \fB\-E\fP. استخدم \fB\-E\fP بدلًا منه، لأنه متوافق مع POSIX بينما هذا الخيار ليس كذلك. إذا حُذفت \fIeof\-str\fP، فلن توجد سلسلة نهاية ملف. إذا لم يُستخدم \fB\-E\fP ولا \fB\-e\fP، فلن تُستخدم أي سلسلة نهاية ملف. .TP \fB\-I\fP\fI replace\-str\fP استبدل حالات ظهور \fIreplace\-str\fP في الـ initial\-arguments بالأسماء المقروءة من الدخل القياسي. كما أن الفراغات غير المقتبسة لا تنهي عناصر الدخل؛ وبدلًا من ذلك يكون الفاصل هو محرف السطر الجديد. يتضمن \fB\-x\fP و \fB\-L\fP 1. .TP \fB\-i\fP[\fIreplace\-str\fP], \fB\-\-replace\fP[\fI=replace\-str\fP] هذا الخيار مرادف لـ \fB\-I\fP\fIreplace\-str\fP إذا حُددت \fIreplace\-str\fP. إذا غاب معامل \fIreplace\-str\fP، يكون التأثير مماثلًا لـ \fB\-I\fP{}. الخيار \fB\-i\fP مهجور؛ استخدم \fB\-I\fP بدلًا منه. .TP \fB\-L\fP\fI max\-lines\fP استخدم \fImax\-lines\fP من سطور الدخل غير الفارغة كحد أقصى لكل سطر أوامر. تؤدي الفراغات اللاحقة إلى استمرار سطر الدخل منطقيًا في سطر الدخل التالي. يتضمن \fB\-x\fP. .TP \fB\-l\fP[\fImax\-lines\fP], \fB\-\-max\-lines\fP[=\fImax\-lines\fP] مرادف للخيار \fB\-L\fP. وبخلاف \fB\-L\fP، فإن معامل \fImax\-lines\fP اختياري. إذا لم يُحدد \fImax\-lines\fP، فإنه يُفترض واحدًا. الخيار \fB\-l\fP مهجور لأن معيار POSIX يحدد \fB\-L\fP بدلًا منه. .TP \fB\-n\fP\fI max\-args\fP, \fB\-\-max\-args\fP=\fImax\-args\fP استخدم \fImax\-args\fP من المعاملات كحد أقصى لكل سطر أوامر. سيُستخدم عدد أقل من \fImax\-args\fP إذا جرى تجاوز الحجم (انظر الخيار \fB\-s\fP)، ما لم يُعطَ الخيار \fB\-x\fP، وفي هذه الحالة سيخرج \fBxargs\fP. .TP \fB\-P\fP\fI max\-procs\fP, \fB\-\-max\-procs\fP=\fImax\-procs\fP شغل ما يصل إلى \fImax\-procs\fP من العمليات في وقت واحد؛ المبدئي هو 1. إذا كان \fImax\-procs\fP هو 0، فسيقوم \fBxargs\fP بتشغيل أكبر عدد ممكن من العمليات في وقت واحد. استخدم الخيار \fB\-n\fP أو الخيار \fB\-L\fP مع \fB\-P\fP؛ وإلا فمن المرجح تنفيذ exec واحد فقط. أثناء تشغيل \fBxargs\fP، يمكنك إرسال إشارة SIGUSR1 لعمليته لزيادة عدد الأوامر التي تعمل بالتزامن، أو SIGUSR2 لتقليل العدد. لا يمكنك زيادته فوق الحد الذي يحدده التنفيذ (الذي يظهر باستخدام \-\-show\-limits). لا يمكنك تقليله إلى أقل من 1. لا ينهي \fBxargs\fP أوامره أبدًا؛ فعندما يُطلب منه التقليل، فإنه ينتظر ببساطة انتهاء أكثر من أمر موجود قبل بدء أمر آخر. ينتظر \fBxargs\fP دائمًا خروج جميع العمليات الوليدة قبل أن يخرج هو نفسه (لكن انظر BUGS). إذا لم تستخدم الخيار \fB\-P\fP، فلن يتعامل \fBxargs\fP مع إشارتي SIGUSR1 و SIGUSR2، مما يعني أنهما ستنهيان البرنامج (ما لم تكن قد حُجبت في العملية الأب قبل بدء \fBxargs\fP). \fBيرجى ملاحظة\fP أن الأمر متروك للعمليات المستدعاة لإدارة الوصول المتوازي إلى الموارد المشتركة بشكل صحيح. على سبيل المثال، إذا حاولت أكثر من عملية منها الطباعة على stdout، فسيُنتج الخرج بترتيب غير محدد (ومن المرجح جدًا أن يختلط) ما لم تتعاون العمليات بطريقة ما لمنع ذلك. استخدام نوع من مخطط القفل هو إحدى الطرق لمنع مثل هذه المشاكل. بشكل عام، سيساعد استخدام مخطط القفل في ضمان الخرج الصحيح ولكنه سيقلل من الأداء. إذا كنت لا ترغب في تحمل فرق الأداء، فقم ببساطة بترتيب كل عملية لإنتاج ملف خرج منفصل (أو استخدام موارد منفصلة بطريقة أخرى). .TP \fB\-o, \-\-open\-tty\fP أعد فتح stdin كـ \fI/dev/tty\fP في العملية الوليدة قبل تنفيذ الأمر. هذا مفيد إذا كنت تريد أن يقوم \fBxargs\fP بتشغيل تطبيق تفاعلي. .TP \fB\-p, \-\-interactive\fP اسأل المستخدم عما إذا كان سيتم تشغيل كل سطر أوامر واقرأ سطرًا من الطرفية. لا تشغل سطر الأوامر إلا إذا بدأت الاستجابة بـ `y' أو `Y'. يتضمن \fB\-t\fP. .TP \fB\-\-process\-slot\-var\fP=\fIname\fP اضبط متغير البيئة \fIname\fP على قيمة فريدة في كل عملية وليدة جارية. تُعاد استخدام القيم بمجرد خروج العمليات الوليدة. يمكن استخدام هذا في مخطط توزيع حمل بدائي، على سبيل المثال. .TP \fB\-r, \-\-no\-run\-if\-empty\fP إذا لم يحتوي الدخل القياسي على أي محارف غير فارغة، فلا تشغل الأمر. عادةً، يتم تشغيل الأمر مرة واحدة حتى لو لم يكن هناك دخل. هذا الخيار هو امتداد لـ GNU. .TP \fB\-s\fP\fI max\-chars\fP, \fB\-\-max\-chars\fP\fI=max\-chars\fP استخدم على الأكثر \fImax\-chars\fP من الرموز في كل سطر أمر، بما في ذلك الأمر والوسائط الأولية والمحارف الصفرية النهائية في نهاية سلاسل الوسائط. أكبر قيمة مسموح بها تعتمد على النظام، وتُحسب على أنها الحد الأقصى لطول الوسائط الخاص بالدالة exec، مطروحاً منه حجم متغيرات البيئة، ومطروحاً منه 2048 \بايت كـ "هامش أمان". إذا كانت هذه القيمة أكبر من 128 \كيلوبايت، تُستخدم 128 \كيلوبايت كقيمة مبدئية؛ وبخلاف ذلك، تكون القيمة المبدئية هي الحد الأقصى. الكيلوبايت الواحد (1 \KiB) يساوي 1024 بايت. يتكيف \fBxargs\fP آليًا مع القيود الأكثر صرامة. .TP \fB\-\-show\-limits\fP اعرض الحدود على طول سطر الأوامر التي يفرضها نظام التشغيل، واختيار \fBxargs\fP لحجم المخزن المؤقت والخيار \fB\-s\fP. مرر الدخل من \fI/dev/null\fP (وربما حدد \fB\-\-no\-run\-if\-empty\fP) إذا كنت لا تريد أن يفعل \fBxargs\fP أي شيء. .TP \fB\-t, \-\-verbose\fP اطبع سطر الأوامر على خرج الخطأ القياسي قبل تنفيذه. .TP \fB\-x, \-\-exit\fP اخرج إذا جرى تجاوز الحجم (انظر الخيار \fB\-s\fP). .TP \fB\-\-\fP افصل قائمة الخيارات. تُعامل المعاملات اللاحقة، إن وجدت، كأطراف تشغيل حتى لو بدأت بـ \fI\-\fP. على سبيل المثال، \fBxargs \-\- \-\-help\fP يُشغل الأمر \fI\-\-help\fP (الموجود في \fIPATH\fP) بدلًا من طباعة نص الاستخدام، و \fBxargs \-\- \-\-mycommand\fP يُشغل الأمر \fI\-\-mycommand\fP بدلًا من رفضه كخيار غير معروف. .TP \fB\-\-help\fP اطبع ملخصًا لخيارات \fBxargs\fP واخرج. .TP \fB\-\-version\fP اطبع رقم إصدار \fBxargs\fP واخرج. .PP الخيارات \fB\-\-max\-lines\fP (\fB\-L\fP، \fB\-l\fP)، و \fB\-\-replace\fP (\fB\-I\fP، \fB\-i\fP) و \fB\-\-max\-args\fP (\fB\-n\fP) متنافية تبادليًا. إذا حُدد بعضها في نفس الوقت، فسيستخدم \fBxargs\fP عمومًا الخيار المحدد آخِرًا في سطر الأوامر، أي أنه سيعيد تعيين قيمة الخيار المتعارض (المعطى سابقًا) إلى قيمته المبدئية. بالإضافة إلى ذلك، سيصدر \fBxargs\fP إشعار تحذير تشخيصي على \fIstderr\fP. الاستثناء من هذه القاعدة هو أن قيمة \fImax\-args\fP الخاصة \fI1\fP ('\fB\-n\fP\fI1\fP') جرى تجاهلها بعد الخيار \fB\-\-replace\fP وأسماءه المستعارة \fB\-I\fP و \fB\-i\fP، لأنها لا تتعارض فعليًا. . .SH أمثلة .nf \fBfind /tmp \-name core \-type f \-print | xargs /bin/rm \-f\fP .fi ابحث عن الملفات المسماة \fBcore\fP في أو تحت الدليل \fB/tmp\fP واحذفها. لاحظ أن هذا سيعمل بشكل غير صحيح إذا كان هناك أي أسماء ملفات تحتوي على سطور جديدة أو مسافات. .P \fBfind /tmp \-name core \-type f \-print0 | xargs \-0 /bin/rm \-f\fP ابحث عن الملفات المسماة \fBcore\fP في أو تحت الدليل \fB/tmp\fP واحذفها، مع معالجة أسماء الملفات بطريقة تضمن التعامل الصحيح مع أسماء الملفات أو الأدلة التي تحتوي على مسافات أو سطور جديدة. .P \fBfind /tmp \-depth \-name core \-type f \-delete\fP ابحث عن الملفات المسماة \fBcore\fP في أو تحت الدليل \fB/tmp\fP واحذفها، ولكن بكفاءة أكبر من المثال السابق (لأننا نتجنب الحاجة إلى استخدام \fBfork\fP(2) و \fBexec\fP(2) لإطلاق \fBrm\fP ولا نحتاج لعملية \fBxargs\fP إضافية). .P .nf \fBcut \-d: \-f1 < /etc/passwd | sort | xargs echo\fP .fi يُنشئ قائمة مدمجة بجميع المستخدمين على النظام. . .SH "حالة الخروج" يخرج \fBxargs\fP بالحالات التالية: .RS .IP 0 في حال نجاحه .IP 123 إذا انتهى أي استدعاء للأمر بحالة بين 1\(en125 .IP 124 إذا انتهى الأمر بحالة 255 .IP 125 إذا قُتل الأمر بإشارة .IP 126 إذا تعذر تشغيل الأمر .IP 127 إذا لم يُعثر على الأمر .IP 1 في حال وقوع خطأ آخر. .RE .P تُستخدم أكواد الخروج الأكبر من 128 بواسطة الصدفة للإشارة إلى أن البرنامج مات بسبب إشارة قاتلة. . .SH "المطابقة للمعايير" بدءًا من إصدار GNU xargs 4.2.9، السلوك المبدئي لـ \fBxargs\fP هو عدم وجود علامة نهاية ملف منطقية. يسمح POSIX (IEEE Std 1003.1، إصدار 2004) بذلك. .P يظهر الخياران \-l و \-i في نسخة 1997 من معيار POSIX، لكنهما لا يظهران في نسخة 2004 من المعيار. لذلك يجب عليك استخدام \-L و \-I بدلًا منهما، على التوالي. .P الخيار \-o هو امتداد لمعيار POSIX لتحقيق توافق أفضل مع BSD. .P يسمح معيار POSIX للتنفيذات بأن يكون لها حد على حجم المعاملات لدوال \fBexec\fP. يمكن أن يكون هذا الحد منخفضًا حتى 4096 بايت بما في ذلك حجم البيئة. لكي تكون النصوص البرمجية محمولة، يجب ألا تعتمد على قيمة أكبر. ومع ذلك، لا أعرف أي تنفيذ يكون حده الفعلي بهذا الصغر. يمكن استخدام الخيار \fB\-\-show\-limits\fP لاكتشاف الحدود الفعلية السارية على النظام الحالي. في إصدارات \fBxargs\fP حتى الإصدار 4.9.0 (مضمنًا)، لم تكن SIGUSR1 و SIGUSR2 تتسبب في إنهاء \fBxargs\fP حتى لو لم يُستخدم الخيار \fB\-P\fP. . .SH التاريخ اخترع Herb Gellis برنامج \fBxargs\fP في مختبرات Bell. انظر دليل Texinfo لـ findutils، \fIFinding Files\fP، لمزيد من المعلومات. . .SH العلل من غير الممكن استخدام \fBxargs\fP بشكل آمن، حيث ستكون هناك دائمًا فجوة زمنية بين إنتاج قائمة ملفات الدخل واستخدامها في الأوامر التي يصدرها \fBxargs\fP. إذا كان لمستخدمين آخرين وصول إلى النظام، فيمكنهم التلاعب بـ نظام ملفات خلال هذه النافذة الزمنية لإجبار إجراءات الأوامر التي يشغلها \fBxargs\fP على الانطباق على ملفات لم تكن تقصدها. لمناقشة أكثر تفصيلًا لهذا المشكلة والمشاكل ذات الصلة، يرجى الرجوع إلى فصل \*(lqSecurity Considerations\*(rq في وثائق findutils Texinfo. يمكن غالبًا استخدام الخيار \fB\-execdir\fP لـ \fBfind\fP كبديل أكثر أمانًا. عند استخدام الخيار \fB\-I\fP، يُخزن كل سطر يُقرأ من الدخل مؤقتًا داخليًا. هذا يعني أن هناك حدًا أقصى لطول سطر الدخل الذي سيقبله \fBxargs\fP عند استخدامه مع الخيار \fB\-I\fP. للالتفاف على هذا القيد، يمكنك استخدام الخيار \fB\-s\fP لزيادة مساحة المخزن المؤقت التي يستخدمها \fBxargs\fP، ويمكنك أيضًا استخدام استدعاء إضافي لـ \fBxargs\fP لضمان عدم حدوث سطور طويلة جدًا. على سبيل المثال: .P \fBsomecommand | xargs \-s 50000 echo | xargs \-I '{}' \-s 100000 rm '{}'\fP .P هنا، ليس للاستدعاء الأول لـ \fBxargs\fP حد لطول سطر الدخل لأنه لا يستخدم الخيار \fB\-i\fP. بينما يوجد للاستدعاء الثاني لـ \fBxargs\fP مثل هذا الحد، لكننا تأكدنا من أنه لن يواجه أبدًا سطرًا أطول مما يمكنه التعامل معه. هذا ليس حلًا مثاليًا. بدلًا من ذلك، يجب ألا يفرض الخيار \fB\-i\fP حدًا لطول السطر، وهذا هو سبب ظهور هذا النقاش في قسم BUGS. لا تحدث المشكلة مع مخرجات \fBfind\fP(1) لأنها تُصدر اسم ملف واحد فقط لكل سطر. .P في إصدارات \fBxargs\fP حتى الإصدار 4.9.0 (مضمنًا)، كان \fBxargs \-P\fP يخرج بينما لا تزال بعض عملياته الوليدة تعمل، إذا انتهت إحداها بالحالة 255. . .SH "التبليغ عن الأخطاء" مساعدة GNU findutils عبر الإنترنت: .br أبلغ عن أي أخطاء ترجمة إلى .PP أبلغ عن أي مشكلة أخرى عبر النموذج الموجود في متعقب علل GNU Savannah: .RS .RE تُناقش الموضوعات العامة حول حزمة GNU findutils في القائمة البريدية \fIbug\-findutils\fP: .RS .RE . .SH "حقوق النسخ" حقوق النشر \(co 1990\(en2024 مؤسسة البرمجيات الحرة، المحدودة. رخصة GPLv3+: رخصة جنو العمومية الإصدار 3 أو أحدث . .br هذا برنامج حر: أنت حر في تغييره وإعادة توزيعه. لا يوجد أي ضمان، إلى المدى الذي يسمح به القانون. . .SH "انظر أيضًا" \fBfind\fP(1), \fBkill\fP(1), \fBlocate\fP(1), \fBupdatedb\fP(1), \fBfork\fP(2), \fBexecvp\fP(3), \fBlocatedb\fP(5), \fBsignal\fP(7) .PP الوثائق الكاملة .br أو متاحة محليًا عبر: \fBinfo xargs\fP .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .