cat - שרשור קבצים
השמיים חתול הפקודה קוראת קובץ אחד או יותר ומעתיקה אותם לפלט סטנדרטי כך:
חתול [קוֹבֶץ...]
חתול [קוֹבֶץ...]
ברוב המקרים, אתה יכול לחשוב על חתול כאנלוגי ל- סוג פקודה ב-DOS. אתה יכול להשתמש בו כדי להציג קבצים ללא החלפה, לדוגמה:
[me@linuxbox ~]$ cat ls-output.txt
[me@linuxbox ~]$ cat ls-output.txt
יציג את תוכן הקובץ ls-output.txt. חתול משמש לעתים קרובות להצגת קבצי טקסט קצרים. מאז חתול יכול לקבל יותר מקובץ אחד כארגומנט, ניתן להשתמש בו גם לחיבור קבצים יחד. נניח שהורדנו קובץ גדול שפוצל למספר חלקים (קבצי מולטימדיה מפוצלים לרוב כך ב-Usenet), ואנחנו רוצים לחבר אותם בחזרה. אם הקבצים קיבלו שם:
movie.mpeg.001 movie.mpeg.002 ... movie.mpeg.099
נוכל להצטרף אליהם בחזרה יחד עם הפקודה הזו:
cat movie.mpeg.0* > movie.mpeg
cat movie.mpeg.0* > movie.mpeg
מכיוון שתווים כלליים מתרחבים תמיד בסדר ממוין, הארגומנטים יהיו מסודרים בסדר הנכון.
הכל טוב ויפה, אבל מה זה קשור לקלט סטנדרטי? עדיין כלום, אבל בואו ננסה משהו אחר. מה קורה אם נזין "חתול" ללא טיעונים:
[me@linuxbox ~]$ חתול
[me@linuxbox ~]$ חתול
שום דבר לא קורה, זה פשוט יושב שם כאילו הוא תלוי. זה אולי נראה כך, אבל זה באמת עושה בדיוק את מה שהוא אמור לעשות.
If חתול לא נותנים ארגומנטים, הוא קורא מקלט רגיל ומכיוון שקלט סטנדרטי מחובר, כברירת מחדל, למקלדת, הוא מחכה שנקליד משהו! נסה להוסיף את הטקסט הבא והקש Enter:
הפניית קלט סטנדרטי
[me@linuxbox ~]$ חתול
השועל החום המהיר קפץ מעל הכלב העצלן.
[me@linuxbox ~]$ חתול
השועל החום המהיר קפץ מעל הכלב העצלן.
לאחר מכן, הקלד א Ctrl-d (כלומר, החזק את מקש Ctrl לחוץ והקש "d") כדי לדעת חתול שזה הגיע סוף הקובץ (EOF) על קלט סטנדרטי:
[me@linuxbox ~]$ חתול
השועל החום המהיר קפץ מעל הכלב העצלן.
השועל החום המהיר קפץ מעל הכלב העצלן.
[me@linuxbox ~]$ חתול
השועל החום המהיר קפץ מעל הכלב העצלן.
השועל החום המהיר קפץ מעל הכלב העצלן.
בהיעדר ארגומנטים של שם קובץ, חתול מעתיק קלט סטנדרטי לפלט סטנדרטי, כך שאנו רואים את שורת הטקסט שלנו חוזרת על עצמה. אנו יכולים להשתמש בהתנהגות זו כדי ליצור קבצי טקסט קצרים. נניח שרצינו ליצור קובץ בשם "lazy_dog.txt" המכיל את הטקסט בדוגמה שלנו. היינו עושים את זה:
[me@linuxbox ~]$ cat > lazy_dog.txt
השועל החום המהיר קפץ מעל הכלב העצלן.
[me@linuxbox ~]$ cat > lazy_dog.txt
השועל החום המהיר קפץ מעל הכלב העצלן.
הקלד את הפקודה ולאחריה את הטקסט שאנו רוצים למקם בקובץ. זכור להקליד Ctrl-d בסופו של דבר. באמצעות שורת הפקודה, הטמענו את מעבד התמלילים המטופש בעולם! כדי לראות את התוצאות שלנו, אנחנו יכולים להשתמש חתול כדי להעתיק את הקובץ ל-stdout שוב:
[me@linuxbox ~]$ cat lazy_dog.txt
השועל החום המהיר קפץ מעל הכלב העצלן.
[me@linuxbox ~]$ cat lazy_dog.txt
השועל החום המהיר קפץ מעל הכלב העצלן.
עכשיו כשאנחנו יודעים איך חתול מקבל קלט סטנדרטי, בנוסף לארגומנטים של שם קובץ, בואו ננסה להפנות קלט סטנדרטי:
[me@linuxbox ~]$ cat < lazy_dog.txt
השועל החום המהיר קפץ מעל הכלב העצלן.
[me@linuxbox ~]$ cat < lazy_dog.txt
השועל החום המהיר קפץ מעל הכלב העצלן.
באמצעות אופרטור ההפניה "<", אנו משנים את מקור הקלט הסטנדרטי מהמקלדת לקובץ lazy_dog.txt. אנו רואים שהתוצאה זהה להעברת ארגומנט שם קובץ בודד. זה לא שימושי במיוחד בהשוואה להעברת ארגומנט של שם קובץ, אבל זה משמש להדגמה של שימוש בקובץ כמקור לקלט סטנדרטי. פקודות אחרות מנצלות טוב יותר את הקלט הסטנדרטי, כפי שנראה בקרוב.
לפני שנמשיך, בדוק את דף האיש עבור חתול, שכן יש לו כמה אפשרויות מעניינות.