كات (أمر يونكس)

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

المواصفات 
تحدد مواصفات يونكس الواحدة مهمة الأمر "cat" بقراءة محتويات كل من الملفات الواردة كمعطيات للأمر وكتابتها إلى الخرْج القياسي بنفس التسلسل والترتيب؛ كما تشترط المواصفة وجود خيار "-u"، ويعرّف سلوكه بأنه يجعل الأمر cat يكتب كل بايت بمجرد قراءته إلى الخرج القياسي، دون استخدام خبيئة أو تخزين مؤقت، وهو الخيار الوحيد الذي تشترطه المواصفة.

في حالة تحديد اسم الملف كـ -، سوف يقرأ الأمر cat من الإدخال القياسي بصفته ملف، وسيقرأ منه بحسب ترتبه بين أسماء الملفات المقدمة كمعطيات، وإذا لم يتم تحديد أية ملفات كمعطيات، سوف يقرأ cat من الإدخال القياسي باعتباره ملف.

الملحقات 
تقوم كل إصدارات BSD للكات (وفقا للصفحة الرئيسية لـ أوبن بي إس دي) وإصدار كات لـ ادوات جنو الاساسية بتحديد الخيارات التالية:

 b (GNU only: --number-nonblank)، ويقوم بترقيم خطوط الإنتاج غير الفارغة.
 n (GNU only: --number)، ويقوم بترقيم جميع خطوط الإنتاج.
 s (GNU only: --squeeze-blank)، ويضغط خطوط فارغة مجاورة متعددة.
 v (GNU only: --show-nonprinting)، ويعرض الأحرف غير المطبوعة كما لو أنها كانت واضحة، باستثناء علامات التبويب ونهاية حرف الخط.
 t on BSD, -T on GNU، يتضمن -v ولكن يعرض أيضا علامات التبويب كـ ^I.
 e on BSD, -E on GNU، يتضمن -v ولكن يعرض أيضا نهاية حروف الخط كـ $.

ثقافة يونكس

تعريف ملف اللغة 

يسرد إصدار ملف اللغة 4.4.7 هذا التعريف للكات:
 إرسال ملف كامل للشاشة أو لبعض المخارج الأخرى دون توقف (مرادف لدفع).
 امتدادا لذلك يتم تفريغ كميات كبيرة من البيانات على هدف غير معد أو دون أي نية للتصفح بدقة. الاستعمال: يعتبر بسيط ونادر خارج مواقع يونيكس، انظر أيضا dd وبي أل تي.
يعتبر الكات (1)مثالا ممتازا بين مشجعي يونيكس على تصميم واجهة المستخدم لأنه ينقل محتويات الملف دون إسهاب كالتباعد أو وجود عناوين رأسية بين الملفات، وكذلك لأنه لا يتطلب أن تتكون الملفات من سطور من النص بل يعمل مع أي نوع من البيانات.
يعتبر الكات (1) مثال معترف به للتصميم السئ لواجهة المستخدم بين منتقدي يونيكس، بسبب اسمه الكئيب غير الواضح، يستخدم غالبا لدفع ملف واحد نحو الخرج القياسي أكثر منه في تسلسل ملفين أو أكثر. يعد اسم كات للعملية السابقة غير بديهي كما يقول LISP's cdr.

الاستخدام عديم الفائدة لـ كات 

UUOC (من comp.unix.shell على يوزنت) ترمز إلي «الاستخدام عديم الفائدة لكات». من خلال comp.unix.shell يلاحظ «إن الغرض من كات هو تسلسل الملفات (أو' عرضها في سلسلة '). إذا وجد ملف واحد فقط، فإن وضعه وحده في سلسلة هو مضيعة للوقت والتكاليف»، ويشار إلى هذا أيضا باسم «إهدار الكات»، ومع ذلك يرى المرء من يقومون بـ

 cat filename | cmd arg1 arg2 argn

بدلا من المكافئ (ليس تماما) والأرخص

 <filename cmd arg1 arg2 argn

أو المكافئ (ليس تماما) التقليدي

 cmd arg1 arg2 argn <filename

لا يكون مكافئ تماما لأن آخر مثالين يسمحان لـ cmd بالبحث في الملف، بينما لا يسمح المثال الأول.
يعتبر عدم تسمية اثنين من ملفات كات هو استخدام عديم الفائدة لـ كات. سوف تقوم حملة الاستخدام عديم الفائدة لـ كات UUOC بالقضاء على عدم الكفاءة في النصوص السطحية باستخدام إعادة توجيه بدلا من ذلك. ومع ذلك استخدام كات مع ملف واحد مسمي هو أكثر أمنا حيث الخطأ البشري هو مصدر قلق، لأن استخدام خاطئ واحد لرمز إعادة توجيه القصور ">" بدلا من "<" (المجاور غالبا على لوحات المفاتيح) سوف يحذف تماما الملف الذي كنت بحاجة لقراءته توا، كما سيمنع كات الأمر من البحث في الملف.

تقوم راندال شوارتز لبرمجة بيرل بتوزيع مكافآت موسمية لـلاستخدام عديم الفائدة لـ كات UUOC عادة منذ عام 1995، وتوجد صفحة ويب مخصصة لذلك ومكافآت أخرى مشابهة. يطلق أحيانا إزالة التهجين في بريتيش هاكردوم علي نشاط تثبيت حالات UUOC.

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

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

أنظمة التشغيل الأخرى 
يكون الأمر المكافئ هو type في VMS، سي بي / م، دوس، أو إس/2 وأوامر نظام التشغيل لـ مايكروسوفت ويندوز.
ملحوظة: يمكنك استخدام أمر " copy / b " للجمع بين عدة ملفات معا في الدوس/ الويندوز:
مثال: copy /b file1.txt+file2.txt file3.txt

انظر أيضا 
 , an enhanced replacement for cat  
 أدوات جنو الأساسية
 أوامر يونكس
 سبليت, a command that splits a file into pieces which cat can then rejoin.
 جي زيب

المراجع

وصلات خارجية 

 UNIX Style, or cat -v Considered Harmful - A paper by Rob Pike on proper Unix command design using cat as an example.

صفحات الدليل 
 cat(1) original manual page in the First Edition of يونكس.

أخرى 
 UUOC awards

برامج يونكس القياسية
خدمات مواصفات يونكس المنفردة