> For the complete documentation index, see [llms.txt](https://sh.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sh.howtocode.dev/1.0.0.part1intro/1.3.0.redirection/1.3.5.cat.md).

# ফাইল সংযুক্তিকরণ

এবার আমরা স্ট্যান্ডার্ড ইনপুট নিয়ে কাজ করে এমন একটি কমান্ড নিয়ে কাজ করবো। কমান্ডটি হল **cat**। এই কমান্ডটি যেকোনো ফাইল এর কন্টেন্ট স্ট্যান্ডার্ড ইনপুট হিসেবে ব্যবহার করে এবং স্ট্যান্ডার্ড আউটপুটে সেটাকে রিডিরেক্ট করে। এর কমান্ড কাঠামোটি এরকম:

```
cat [file...]
```

আমরা একাধিক ফাইলকে **cat** এর আর্গুমেন্ট হিসেবে ব্যবহার করতে পারি। সেক্ষেত্রে **cat** তাদের পরপর জুড়ে দিয়ে একসাথে আউটপুট দেবে। প্রকৃতপক্ষে এই কমান্ডটির কাজই হল ফাইল জুড়ে দেয়া। আসুন দেখে নেয়া যাক:

```
me@howtocode-pc:~$ ls e-books/ > ~/ls-e-books.txt
me@howtocode-pc:~$ ls Music/ > ls-music.txt
me@howtocode-pc:~$ cat ls-e-books.txt 
a_game_as_old_as_empire_hxforum_org_sophie.pdf
BLFS-BOOK-7.5-nochunks.pdf
Craft and Skills
debian-handbook.pdf
Full_Circle
Harry Potter Series
JohnPerkins-ConfessionsOfAnEconomicHitman.pdf
LFS-BOOK-7.5.pdf
Religious
Sherlock Holmes
sherlock.pdf
tarashankar_bandyopadhyay_kobi.pdf
Unsorted
আফরোজা পারভিন
কবীর সুমন
গল্পসমগ্র-কমলকুমার মজুমদার.pdf
প্রণব ভট্ট
বুদ্ধদেব গুহ
বুদ্ধদেব বসু
মাইকেল মধুসূদন দত্ত
মীর মোশাররফ হোসেন
মুহম্মদ জাফর ইকবাল
রবীন্দ্রনাথ ঠাকুর
রবীন্দ্রনাথ ঠাকুর_
রুশ সাহিত্য
সুকুমার রায়
সুনীল গঙ্গোপাধ্যায়
হুমায়ুন আহমেদ
হুমায়ূন আজাদ
me@howtocode-pc:~$ cat ls-music.txt 
Bob Dylan
Music
Pete Seeger - The Essential Pete Seeger (2005)
Ringtones
Soulful-Voice-Arjit-Singh-128Kbps-2014(Songs.PK)
Sufi
Veer
জল এর গান
জাতিস্মর
রতন দা
রবীন্দ্রসঙ্গীত
me@howtocode-pc:~$ cat ls-e-books.txt ls-music.txt
a_game_as_old_as_empire_hxforum_org_sophie.pdf
BLFS-BOOK-7.5-nochunks.pdf
Craft and Skills
debian-handbook.pdf
Full_Circle
Harry Potter Series
JohnPerkins-ConfessionsOfAnEconomicHitman.pdf
LFS-BOOK-7.5.pdf
Religious
Sherlock Holmes
sherlock.pdf
tarashankar_bandyopadhyay_kobi.pdf
Unsorted
আফরোজা পারভিন
কবীর সুমন
গল্পসমগ্র-কমলকুমার মজুমদার.pdf
প্রণব ভট্ট
বুদ্ধদেব গুহ
বুদ্ধদেব বসু
মাইকেল মধুসূদন দত্ত
মীর মোশাররফ হোসেন
মুহম্মদ জাফর ইকবাল
রবীন্দ্রনাথ ঠাকুর
রবীন্দ্রনাথ ঠাকুর_
রুশ সাহিত্য
সুকুমার রায়
সুনীল গঙ্গোপাধ্যায়
হুমায়ুন আহমেদ
হুমায়ূন আজাদ
Bob Dylan
Music
Pete Seeger - The Essential Pete Seeger (2005)
Ringtones
Soulful-Voice-Arjit-Singh-128Kbps-2014(Songs.PK)
Sufi
Veer
জল এর গান
জাতিস্মর
রতন দা
রবীন্দ্রসঙ্গীত
```

প্রথমে আমরা `ls e-books/ > ls-e-books.txt` কমান্ড দিয়ে **e-books** ফোল্ডারের কন্টেন্ট এর লিস্ট ls-e-books.txt ফাইলে রিডিরেক্ট করে সংরক্ষণ করলাম। একইভাবে `ls Music/ > ls-music.txt` কমান্ড দিয়ে **Music** ফোল্ডারের কন্টেন্টের লিস্ট সংরক্ষণ করলাম ls-music.txt ফাইলে।

এর পরেরন কমান্ডদুটি অর্থাৎ `cat ls-e-books.txt` এবং `cat ls-music.txt` কমান্ড দিয়ে ওই ফাইলগুলোর কন্টেন্ট আলাদাভাবে দেখিয়েছি।

সবশেষে `cat ls-e-books.txt ls-music.txt` কমান্ড দিয়েছি। ফলে দুটি ফাইলের কন্টেন্ট জুড়ে দিয়ে স্ক্রীনে দেখিয়েছে। আমরা চাইলে এই আউটপুট '>' দিয়ে এই আউটপুট অন্য কোনো ফাইলে রিডিরেক্ট করে দিতে পারতাম।

মজার বিষয় হচ্ছে **cat** শুধু টেক্সট না যেকোনো কিছু জুড়ে দিতে পারে। মনে করুন আপনি ইন্টারনেট থেকে একটি মুভি নামিয়েছেন। যে আপলোড করেছে সে এটিকে ছোট ছোট ভাগ করে আপলোড করেছে। আপনাকে সবগুলো নামিয়ে করে নিতে হবে। মনে করি এরকম ছোট ছোট ১৫টা ফাইল আছে। movie.mpeg.001, movie.mpeg.002.... এরকম করে movie.mpeg.015 পর্যন্ত। আমরা এগুলো পরপর জুড়ে দিয়ে movie.mpeg ফাইল বানাতে পারি এভাবে:

```
me@howtocode-pc:~$ cat movie.mpeg.0* > movie.mpeg
```

এখানে আমরা সবফাইলগুলো '*' ওয়াইল্ডকার্ডের মাধ্যমে সিলেক্ট করেছি আর ওয়াইল্ডকার্ড সবসময়ই ক্রম বজায় রাখে অর্থাৎ এটা 001, 002.... 015 এভাবেই সিলেক্ট করবে। \*cat* দিয়ে এদের জুড়ে দিয়েছি এবং এর আউটপুট '>' চিহ্ন দিয়ে movie.mpeg ফাইলে রিডিরেক্ট করে দিয়েছি।

আমরা যদি কোনো আর্গুমেন্ট ছাড়া **cat** কমান্ডটি ব্যবহার করি এভাবে:

```
me@howtocode-pc:~$ cat
```

তাহলে আপনি দেখবেন প্রম্পট ফিরে আসছে না। দেখে মনে হতে পারে হ্যাং হয়ে গেছে। আসলে তা হয়নি। **cat** তখন আসলে আপনার কাছ থেকে ইনপুট আশা করছে। আপনি যেকোনোকিছু লিখে এন্টার চাপলে সেটা cat স্ট্যান্ডার্ড আউটপুটে পাঠাবে। এরকম:

```
me@howtocode-pc:~$ cat
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!
```

সবশেষে আপনি ctrl-d চেপে এখান থেকে বেরতে পারবেন।

আমরা চাইলে এই আউটপুট কোনো ফাইলে রিডিরেক্ট করতে পারি। তখন নীচে আউটপুট না দেখিয়ে সেই ফাইলে পাঠিয়ে দেবে:

```
me@howtocode-pc:~$ cat > চিৎকার.txt
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!
```

আবার আমরা সেই ফাইলটার কন্টেন্ট ইনপুট হিসেবে cat এ দিতে পারি '<' চিহ্ন দিয়ে:

```
me@howtocode-pc:~$ cat < চিৎকার.txt
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!
```
