حرف R

إعادة التوجيه

Redirection

آخر تحديث: 2026-10-13
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أنك تقوم بتوصيل خرطوم مياه لملء دلو بدلا من ترك الماء يتدفق عشوائيا على الأرض. في نظام لينكس (Linux)، عندما تكتب أمرا، فإن النتيجة أو المخرجات (Outputs) تظهر عادة على الشاشة، وإذا احتاج الأمر إلى بيانات فإنه ينتظر منك كتابتها كمدخلات (Inputs) عبر لوحة المفاتيح. ميزة إعادة التوجيه (Redirection) تسمح لك بتغيير هذا المسار الافتراضي. يمكنك أخذ نتيجة أمر معين وحفظها مباشرة داخل ملف بدلا من عرضها على الشاشة، أو يمكنك جعل أمر يقرأ بياناته من ملف موجود مسبقا بدلا من كتابتها يدويا. هذا يجعلك تتحكم بذكاء في تدفق البيانات داخل موجه الأوامر (Terminal) لتوفير الوقت وتسهيل حفظ السجلات.

الشرح التقني المتقدم

تعتبر عملية إعادة التوجيه (Redirection) من أهم المفاهيم الأساسية في سطر الأوامر (Command Line) داخل أنظمة لينكس، حيث تسمح للمستخدمين بالتحكم في تدفق البيانات بين الأوامر والملفات بدلا من الاعتماد على الشاشة ولوحة المفاتيح كمسارات افتراضية.

كيف تعمل مجاري البيانات (Data Streams) في لينكس

يعتمد نظام لينكس (Linux) على ثلاثة مسارات رئيسية للتعامل مع البيانات أثناء تنفيذ أي عملية، وتعرف هذه المسارات بمعرفات الملفات (File Descriptors):

المدخلات القياسية (Standard Input أو stdin): وتأخذ المعرف رقم 0، وهي البيانات التي يستقبلها الأمر، وعادة ما تأتي من لوحة المفاتيح. المخرجات القياسية (Standard Output أو stdout): وتأخذ المعرف رقم 1، وهي النتيجة الطبيعية للأمر والتي تظهر على الشاشة. الأخطاء القياسية (Standard Error أو stderr): وتأخذ المعرف رقم 2، وهي رسائل الخطأ التي يولدها النظام (System) عند فشل تنفيذ أمر ما.

استخدام رموز التوجيه (Redirection Operators) عمليا

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

أمر توجيه المخرجات القياسية إلى ملف (مع إنشاء الملف أو استبدال محتواه):

ls -l > files_list.txt

توضيح لأهم رموز التوجيه والفروقات التقنية بينها:

  • الرمز >: يقوم بتوجيه المخرجات (stdout) إلى ملف، وإذا كان الملف موجودا سيتم مسح محتواه القديم واستبداله.
  • الرمز >>: يقوم بتوجيه المخرجات وإضافتها (Append) إلى نهاية الملف دون حذف المحتوى السابق.
  • الرمز 2>: يستخدم لتوجيه رسائل الخطأ (stderr) فقط إلى ملف، وهو مفيد جدا في تسجيل الأخطاء (Logs) وعزلها عن المخرجات السليمة.
  • الرمز &>: يقوم بتوجيه كل من المخرجات والأخطاء معا إلى نفس الملف في خطوة واحدة.
  • الرمز <: يقوم بتوجيه المدخلات (stdin) بحيث يقرأ الأمر البيانات من ملف نصي بدلا من الانتظار لكتابتها عبر لوحة المفاتيح.

ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)

استخدام إعادة التوجيه (Redirection) بفاعلية يقلل من الفوضى البصرية على الشاشة ويسمح لك بأتمتة المهام (Automation) وحفظ السجلات بسلاسة، خاصة عند دمج هذه الميزة مع الأنابيب (Pipes) لتمرير مخرجات أمر لتصبح مدخلات لأمر آخر، مما يمنحك قوة هائلة في بناء نصوص برمجية (Scripts) احترافية.

المصادر المعتمدة :