লিনাক্সের ডিফল্ট শেল Bash (বোর্ন অগেইন শেল) সিস্টেমের জন্য কমান্ড এক্সিকিউট করে। অধিকাংশ প্রোগ্রামার cmd-র চেয়ে bash পছন্দ করেন ফ্লেক্সিবিলিটি এবং পাওয়ারফুল কমান্ড লাইন ইন্টারপ্রেটারের জন্য। কিন্তু অধিকাংশ ইউজার বাশে স্পেসসহ ফাইলনেম হ্যান্ডেল করার সময় সমস্যায় পড়েন। কারণ বাশে স্পেস ফাইলনেমের মতো নয়।
কেন বাশ স্পেসসহ ফাইলনেম রিকগনাইজ করে না?
Bash-এ যদি আপনি একাধিক শব্দ এস্কেপ ক্যারেক্টার (\) বা কোটেশন ছাড়া টাইপ করেন, তবে সেটা সকল শব্দকে আর্গুমেন্ট হিসেবে বিবেচনা করবে। এটি সকল অপারেশনে প্রযোজ্য—চাহে cd দিয়ে ডিরেক্টরি চেঞ্জ করা হোক বা cat দিয়ে ফাইল এক্সেস করা হোক। এই কমান্ডের পরে যা লিখবেন সেটা আর্গুমেন্ট হিসেবে ধরা হবে। উদাহরণ:
cat file name.txt
নোট: আপনার ফাইলনেম যেকোনো কিছু হতে পারে, এই আর্টিকেলে আমরা উদাহরণস্বরূপ file name.txt ব্যবহার করব।
এখানে cat কমান্ড file এবং name-কে দুটি আলাদা আর্গুমেন্ট মानेगा, একটা আর্গুমেন্ট না মানে। কিন্তু যদি এস্কেপ ক্যারেক্টার বা কোটেশন ব্যবহার করেন তবে বাশ শেল সেটাকে একক আর্গুমেন্ট হিসেবে বিবেচনা করবে, যা হবে file name.txt।
বাশে স্পেসসহ ফাইলনেম
ফাইলনেমে স্পেস হ্যান্ডেল করার কয়েকটি মেথড রয়েছে। সেরা প্র্যাকটিস হচ্ছে ভবিষ্যতে ফাইলনেমে স্পেস এড়ানো। সিম্পল মেথড: আপনি যে ফাইল এক্সেস করতে চাচ্ছেন সেটা রিনেম করে স্পেস বাদ দিন। অন্যান্য মেথড: ফাইলনেমে সিঙ্গেল বা ডাবল কোটেশন ব্যবহার করা বা স্পেসের আগে এস্কেপ (\) সিম্বল ব্যবহার করা। নিচে অ্যাপ্লাইড উদাহরণসহ মেথডগুলো দেওয়া হলো।
মেথড ১: সিঙ্গেল ও ডাবল কোটেশন ব্যবহার
- Ctrl + Alt ধরে T চাপুন Terminal খোলার জন্য।
- ফাইল যেখানে আছে সে ডিরেক্টরিতে যান। (আপনি
catকমান্ডের পর ফাইলটি ড্র্যাগ অ্যান্ড ড্রপ করলেও টার্মিনালে অটোমেটিক্যালি কোটেশনসহ পাথ/ডিরেক্টরি অ্যাড হয়বে)cd Desktop
নোট: Desktop-র জায়গায় আপনার লোকেশন দিন। - স্পেসসহ টেক্সট ফাইল পড়তে নিচের কমান্ড টাইপ করুন:
cat 'file name.txt'
অথবাcat "file name.txt"

- সিঙ্গেল এবং ডাবল কোটেশন একই রেজাল্ট দেবে। কিছু কেসে দুটোই ট্রাই করে দেখুন কোনটি কাজ করে।
মেথড ২: ব্যাকস্ল্যাশ এস্কেপ ক্যারেক্টার ব্যবহার
- Ctrl + Alt ধরে T চাপুন Terminal খোলার জন্য।
- ফাইল থাকা ডিরেক্টরিতে যান:
cd Desktop
নোট: Desktop-র জায়গায় আপনার লোকেশন দিন। - কমান্ড টাইপ করুন এবং স্পেস থাকা জায়গায় এস্কেপ ক্যারেক্টার ব্যবহার করুন:
cat file\ name.txt

বোনাস: কোটেশন ও এস্কেপের ব্যবহার
কখনো কমান্ডে ডিরেক্টরি ব্যবহার করলে পুরো পাথেও কোটেশন দিলে কিছু কমান্ডের জন্য কনসিকোয়েন্স হতে পারে। যেমন mv বা cp কমান্ড পুরো পাথ কোটেশন দিলে ফাইল সোর্স হিসেবে মনে করবে। সোর্স এবং ডেস্টিনেশন-এর জন্য আলাদা আলাদা কোটেশন দিতে হবে যাতে cp কমান্ড সঠিক কাজ করে। এস্কেপ ক্যারেক্টার পাথের জন্য ব্যবহার করা জটিল এবং ইউজাররা মিস্টেক করতে পারে। নিচের উদাহরণ দেখুন: