أمر cat في لينكس: دليل شامل لإنشاء وعرض ودمج الملفات النصية بكفاءة

دقائق القراءة: 6

يُعد أمر cat (اختصار لـ concatenate) واحداً من أكثر الأوامر شيوعاً وتنوعاً في أنظمة التشغيل الشبيهة بيونكس، مثل لينكس. إنه أداة أساسية في ترسانة أي مستخدم أو مطور يتعامل مع سطر الأوامر، ويُعرف بقدرته على التعامل مع الملفات النصية بمرونة عالية.

تتعدد استخدامات أمر cat، ولكن يمكن تلخيص وظائفه الرئيسية في أربع نقاط أساسية:

  • عرض محتويات الملفات: إظهار نصوص ملف واحد أو أكثر مباشرة على الطرفية.
  • دمج الملفات (Concatenate): ضم محتويات ملفات متعددة في تدفق واحد أو في ملف جديد.
  • إخراج النص (Echoing): عكس النص المدخل، سواء بشكل تفاعلي أو عبر التوجيه (piping).
  • إنشاء ملفات جديدة: طريقة سريعة لإنشاء ملفات نصية وإدخال محتواها مباشرة.

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

فهم أمر cat في لينكس: أداة متعددة الاستخدامات

كما ذكرنا، فإن أمر cat هو حجر الزاوية في التعامل مع الملفات النصية في لينكس. اسمه مشتق من وظيفته الأصلية وهي دمج الملفات. ومع ذلك، تطورت استخداماته لتشمل مجموعة واسعة من المهام التي تجعله لا غنى عنه في إدارة النظام ومعالجة النصوص.

عرض محتويات الملفات باستخدام cat

الاستخدام الأكثر شيوعاً لأمر cat هو عرض محتويات ملف نصي واحد على الشاشة (standard output). هذه الوظيفة مفيدة جداً للمراجعة السريعة لمحتوى ملف دون الحاجة إلى فتحه في محرر نصوص.

مثال عملي: عرض ملف نصي بسيط

لنفترض أن لدينا ملفاً ونريد عرض محتوياته. يمكننا أولاً إنشاء ملف تجريبي ثم عرضه:

echo "Dance, Dance" > cat_create #create a file
cat cat_create

في هذا المثال البسيط، نستخدم مزيجاً من أمر echo وإعادة التوجيه (>) لإنشاء ملف يسمى cat_create يحتوي على النص “Dance, Dance”. ثم نستخدم أمر cat لعرض محتويات هذا الملف على الشاشة.

لقطة شاشة توضح إخراج أمر cat الذي يعرض محتويات ملف نصي باسم cat_create

الصورة أعلاه توضح ناتج تنفيذ الأوامر، حيث يظهر محتوى الملف “Dance, Dance” مباشرة في الطرفية.

دمج الملفات (Concatenation) بفعالية مع cat

الوظيفة الأساسية التي اشتق منها اسم cat هي دمج (concatenate) ملفات متعددة. يقوم الأمر بقراءة محتويات الملفات المحددة بالتسلسل ويعرضها كتدفق واحد من البيانات.

دمج ملفين أو أكثر

إذا قمنا بتمرير اسمين أو أكثر من أسماء الملفات إلى أمر cat، فسيعرض محتوياتها مدمجة. لنقم بتجربة ذلك:

echo "This is how we do it" > test1 #create 1st file
echo "*This is how we do it*" > test2 #create 2nd file
cat test1 test2

سينتج عن تنفيذ هذه الأوامر عرض محتويات الملف الأول test1، متبوعاً مباشرة بمحتويات الملف الثاني test2. يمكنك تمرير عدد كبير من الملفات إلى أمر cat، وسيقوم بدمج محتوياتها وعرضها بالتسلسل. من الجدير بالذكر أن أمر cat يقوم تلقائياً بإضافة فاصل سطر (new line) بين مخرجات كل ملف.

لقطة شاشة تعرض ناتج دمج ملفين نصيين باستخدام أمر cat

تُظهر الصورة أعلاه ناتج دمج ملفين، حيث تظهر محتوياتهما متتالية.

يوفر أمر cat أيضاً بعض الخيارات الإضافية (switches) مثل -v لعرض الأحرف غير القابلة للطباعة، أو -n لترقيم الأسطر. يمكن العثور على تفاصيل كاملة حول هذه الخيارات في صفحات الدليل (man pages) الخاصة بالأمر، والتي يمكن الوصول إليها بكتابة man cat في الطرفية.

استخدام cat لوظيفة الصدى (Echoing) والتفاعل المباشر

على الرغم من أن وظيفة الصدى ليست الاستخدام الأكثر شيوعاً لأمر cat، إلا أنها تشكل أساساً لفهم كيفية إنشاء الملفات بشكل تفاعلي.

الوضع التفاعلي لأمر cat

إذا قمت بتشغيل أمر cat بدون أي وسائط (arguments) أو إعادة توجيه، فسيعمل في الوضع التفاعلي (interactive mode). في هذا الوضع، سيعرض cat أي نص تكتبه في الطرفية مباشرة بعد الضغط على Enter، حتى تقوم بالخروج من الأمر (عادةً بالضغط على Ctrl+D).

لقطة شاشة تعرض أمر cat يعمل في الوضع التفاعلي

في المثال الموضح، تم كتابة كلمة واحدة في كل سطر. في كل مرة يتم فيها الضغط على مفتاح Enter، يتم إرجاع السطر المكتوب.

توجيه النص (Piping) إلى cat

يمكنك أيضاً توجيه مخرجات أمر آخر (pipe text) إلى أمر cat. في هذه الحالة، سيعمل cat على عرض هذا النص الموجه إليه. على سبيل المثال:

echo "Piping fun" | cat

سينتج عن هذا الأمر الإخراج التالي:

لقطة شاشة تعرض ناتج توجيه نص إلى أمر cat

توضح الصورة أعلاه كيف يتم إرجاع النص “Piping fun” عند توجيهه إلى cat، مما يبرهن على قدرته على معالجة تدفقات البيانات.

إنشاء الملفات النصية باستخدام أمر cat

بالإضافة إلى عرض ودمج الملفات، يمكن استخدام أمر cat لإنشاء ملفات جديدة، سواء عن طريق دمج ملفات موجودة أو عن طريق إدخال المحتوى مباشرة.

إنشاء ملف جديد من دمج ملفات متعددة

في الأمثلة السابقة، استخدمنا أمر echo مع إعادة التوجيه (>) لإنشاء ملفات جديدة. يمكن استخدام أمر cat بطريقة مشابهة لإنشاء الملفات، خاصة عند الرغبة في دمج محتويات عدة ملفات في ملف واحد جديد.

يمكننا إنشاء ملف يحتوي على دمج محتويات عدة ملفات كالتالي:

echo "File 1 Contents" > file1
echo "File 2 Contents" > file2
echo "File 3 Contents" > file3
cat file1 file2 file3 > combined_file
cat combined_file

في المثال أعلاه، نقوم بإنشاء ثلاثة ملفات باستخدام echo، ثم ندمج محتويات هذه الملفات الثلاثة في ملف واحد جديد يسمى combined_file باستخدام cat وإعادة التوجيه (>)، وأخيراً نعرض محتويات الملف المدمج الجديد باستخدام cat مرة أخرى.

لقطة شاشة تعرض نتيجة دمج ثلاثة ملفات في ملف واحد باستخدام أمر cat

توضح الصورة ناتج الأوامر، حيث تم إنشاء ثلاثة ملفات ثم دمجها في ملف واحد جديد بنجاح.

إنشاء ملف باستخدام الوضع التفاعلي لأمر cat

يمكننا أيضاً استخدام الوضع التفاعلي لأمر cat لإنشاء ملف يحتوي على النص الذي نكتبه مباشرة في الطرفية (terminal). للقيام بذلك، نستخدم الأمر cat > new_file_name ثم نبدأ بكتابة المحتوى. عند الانتهاء من إدخال النص، نضغط على Ctrl+D (في أنظمة لينكس ويونكس) للخروج وحفظ الملف.

لقطة شاشة توضح كيفية إنشاء ملف نصي باستخدام الوضع التفاعلي لأمر cat

في كل مرة تضغط فيها على مفتاح Enter، يتم إضافة السطر المكتوب إلى المخزن المؤقت للملف. إذا كان لديك نص غير محفوظ وخرجت من الأمر دون الضغط على Ctrl+D، فلن يتم حفظ هذا النص في الملف. هذه طريقة رائعة لإنشاء ملف بسرعة مع القدرة على إدخال محتوى الملف مباشرة وبسهولة.

بديل سريع: إنشاء ملفات فارغة باستخدام أمر touch

في بعض الأحيان، كل ما تحتاجه هو أن يكون الملف موجوداً على النظام، دون الحاجة إلى محتوى معين بداخله. كبديل لاستخدام أمر cat لإنشاء ملف فارغ، يمكنك استخدام أمر touch.

تم تصميم أمر touch في الأصل لتحديث الطابع الزمني للتعديل (modification timestamp) و/أو الوصول (access timestamp) لملف ما. ومع ذلك، فإنه يستخدم بشكل شائع كطريقة سريعة ومباشرة لإنشاء ملف فارغ إذا لم يكن موجوداً بالفعل.

إليك مثال على هذا الاستخدام البسيط:

touch new_file_name

إذا كان الملف new_file_name غير موجود، فسيقوم أمر touch بإنشائه كملف فارغ. إذا كان الملف موجوداً بالفعل، فسيقوم بتحديث طوابعه الزمنية دون تغيير محتواه.

يمكن لأمر touch أيضاً إنشاء ملفات متعددة في أمر واحد، وتحديث طوابع التعديل و/أو الإنشاء لعدة ملفات، والعديد من الوظائف المفيدة الأخرى. يمكن العثور على صفحات الدليل الكاملة (man pages) الخاصة به لمزيد من التفاصيل، وذلك بكتابة man touch في الطرفية.

يُستخدم touch بشكل شائع لضمان وجود ملف، وهو أمر رائع إذا كنت بحاجة إلى ملف فارغ بسرعة أو لإنشاء ملفات وهمية لغرض الاختبار.

الخلاصة التقنية

يُعد أمر cat أداة لا غنى عنها في بيئة لينكس، حيث يوفر مرونة كبيرة في التعامل مع الملفات النصية. سواء كنت بحاجة لعرض محتويات ملف، دمج عدة ملفات في ملف واحد، أو حتى إنشاء ملفات جديدة مباشرة من الطرفية، فإن cat يقدم حلولاً فعالة. من ناحية أخرى، يبرز أمر touch كخيار مثالي عندما يكون الهدف الوحيد هو إنشاء ملف فارغ بسرعة، مما يجعله مكملاً قوياً لأمر cat في سير عمل إدارة الملفات.

فهم هذه الأوامر واستخداماتها المتعددة يعزز بشكل كبير كفاءة المستخدمين في بيئات يونكس ولينكس، ويساهم في تبسيط المهام اليومية المتعلقة بمعالجة النصوص والملفات. إن إتقان هذه الأدوات الأساسية يفتح الباب أمام استخدامات أكثر تقدماً في البرمجة النصية (scripting) وأتمتة المهام.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *