এই গাইড ব্যাখ্যা করবে কীভাবে .ZIP, .TAR এবং .TAR.GZ ফাইল তৈরি করা হয় এবং/অথবা ওপেন করা হয় এবং কন্টেন্ট এক্সট্রাক্ট করা হয় লিনাক্স অপারেটিং সিস্টেমে।
পটভূমি
ডেটা কমপ্রেশন বছরের পর বছর আমাদের জন্য অত্যন্ত উপকারী হয়েছে। চায়ে এটি একটি জিপ ফাইল যাতে ছবি মেইলে পাঠানো যায় অথবা একটি কমপ্রেসড ডেটা ব্যাকআপ যা সার্ভারে স্টোরড থাকে, আমরা ডেটা কমপ্রেশন ব্যবহার করি berhুক্ত হার্ড ড্রাইভ স্পেস বাঁচাতে বা ফাইল ডাউনলোড করা সহজ করতে। এমন কমপ্রেশন ফরম্যাট আছে যেগুলো আমাদের কখনও কখনও ৬০% বা তার বেশি ডেটা কমপ্রেস করতে দেয়। আমি আপনাকে এই ফরম্যাটগুলোর ব্যবহার দিয়ে লিনাক্স মেশিনে ফাইল ও ডিরেক্টরি কমপ্রেস ও ডিকমপ্রেস করার মাধ্যমে নিয়ে যাব। আমরা zip, tar, tar.gz এবং tar.bz2 ফরম্যাটের বেসিক ইউজ কভার করব। এগুলো লিনাক্স মেশিনে কমপ্রেশনের জন্য সবচেয়ে জনপ্রিয় ফরম্যাটগুলো।
কুইক নোট: আপনি যদি এই টিউটোরিয়ালের উইন্ডোজ ভার্সন খুঁজেন, আপনি এটিকে How to Open tar.gz Files in Windows-এ পাবেন।
ফরম্যাটগুলোর ব্যবহারে যাওয়ার আগে আমি আর্কাইভিংয়ের বিভিন্ন ফরম্যাট ব্যবহার করার আমার কিছু অভিজ্ঞতা শেয়ার করতে চাই। আমি এখানে শুধু কয়েকটি ডেটা কমপ্রেশন ফরম্যাটের কথা বলছি, এবং আরও অনেক আছে বাইরে। আমি বুঝতে পেরেছি আমাকে দুটি বা তিনটি কমপ্রেশন ফরম্যাট দরকার যেগুলোর সাথে আমি কমফরটেবল, এবং সেগুলোর সাথে থাকি। Zip ফরম্যাট নিশ্চিতভাবে সেগুলোর একটি। এর কারণ zip ডেটা কমপ্রেশনের জন্য ডি-ফ্যাক্টো স্ট্যান্ডার্ড চয়েস হয়ে উঠেছে, এবং এটি উইন্ডোজেও কাজ করে। আমি zip ফরম্যাট ব্যবহার করি ফাইলগুলোর জন্য যেগুলো আমাকে উইন্ডোজ ইউজারদের সাথে শেয়ার করতে হতে পারে। আমি tar.gz ফরম্যাট পছন্দ করি ফাইলগুলোর জন্য যেগুলো আমি শুধু আমার ম্যাক এবং লিনাক্স মেশিনে ব্যবহার করব।
লিনাক্সে ZIP ফাইল
Zip احتمالত আজকাল সবচেয়ে কমনলি ব্যবহার হওয়া আর্কাইভিং ফরম্যাট। এর সবচেয়ে বড় সুবিধা হচ্ছে এটি সকল অপারেটিং সিস্টেম প্ল্যাটফর্মে উপলব্ধ যেমন লিনাক্স, উইন্ডোজ, এবং Mac OS, এবং সাধারণত বক্সের বাইরে সাপোর্টেড। Zip ফরম্যাটের ডাউনসাইড হচ্ছে এটি সেরা লেভেলের কমপ্রেশন অফার করে না। Tar.gz এবং tar.bz2 সেই রেসপেক্টে কাফি সুপീരিয়র। চলুন ব্যবহারে যাই।
একটি ডিরেক্টরি zip দিয়ে কমপ্রেস করতে নিচের কাজ করুন:
# zip -r archive_name.zip directory_to_compress
এখানে কীভাবে একটি zip আর্কাইভ এক্সট্রাক্ট করতে হয়:
# unzip archive_name.zip
লিনাক্সে TAR ফাইল
Tar লিনাক্স সিস্টেমে খুব কমনলি ব্যবহার হওয়া একটি আর্কাইভিং ফরম্যাট। Tar-এর সুবিধা হচ্ছে এটি ফাইল কমপ্রেস করতে খুব কম সময় এবং CPU কনসিউম করে, কিন্তু কমপ্রেশনও তেমন বেশি নয়। Tar সম্ভবত লিনাক্স/UNIX-র zip ভার্সন — কুইক অ্যান্ড ডার্টি। এখানে কীভাবে একটি ডিরেক্টরি কমপ্রেস করতে হয়:
# tar -cvf archive_name.tar directory_to_compress
এবং আর্কাইভ এক্সট্রাক্ট করতে:
# tar -xvf archive_name.tar.gz
এটি archive_name.tar আর্কাইভের ফাইলগুলো কারেন্ট ডিরেক্টরিতে এক্সট্রাক্ট করবে। Tar ফরম্যাটের মত আপনি অপশনালি ফাইলগুলো অন্য ডিরেক্টরিতে এক্সট্রাক্ট করতে পারেন:
# tar -xvf archive_name.tar -C /tmp/extract_here/
লিনাক্সে TAR.GZ ফাইল
এই ফরম্যাট হলো আমার পছন্দের হয়ের কমপ্রেশনের জন্য অধিকাংশ সময়। এটি ভালো কমপ্রেশন দেয় CPU খুব বেশি ইউজ না করে ডেটা কমপ্রেস করার সময়। একটি ডিরেক্টরি কমপ্রেস করতে নিচের সিনট্যাক্স ব্যবহার করুন:
# tar -zcvf archive_name.tar.gz directory_to_compress
একটি আর্কাইভ ডিকমপ্রেস করতে নিচের সিনট্যাক্স ব্যবহার করুন:
# tar -zxvf archive_name.tar.gz
এটি archive_name.tar.gz আর্কাইভের ফাইলগুলো কারেন্ট ডিরেক্টরিতে এক্সট্রাক্ট করবে। Tar ফরম্যাটের মত আপনি অপশনালি ফাইলগুলো অন্য ডিরেক্টরিতে এক্সট্রাক্ট করতে পারেন:
# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
লিনাক্সে TAR.BZ2 ফাইল
এই ফরম্যাটে আমি যেসব ফরম্যাটের কথা বললাম সেগুলোর মধ্যে সেরা লেভেলের কমপ্রেশন আছে। কিন্তু এতে একটি কস্ট আছে — টাইম এবং CPU-তে। এখানে tar.bz2 ব্যবহার করে একটি ডিরেক্টরি কমপ্রেস করার পদ্ধতি:
# tar -jcvf archive_name.tar.bz2 directory_to_compress
এটি archive_name.tar.bz2 আর্কাইভের ফাইলগুলো কারেন্ট ডিরেক্টরিতে এক্সট্রাক্ট করবে। ফাইলগুলো অন্য ডিরেক্টরিতে এক্সট্রাক্ট করতে ব্যবহার করুন:
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
ডেটা কমপ্রেশন খুব হ্যান্ডি বিশেষ করে ব্যাকআপের জন্য। তাই আপনার যদি একটি শেল স্ক্রিপ্ট থাকে যা রেগুলার বেসিসে আপনার ফাইলগুলো ব্যাকআপ নেয়, আপনি এখানে শিখা কমপ্রেশন ফরম্যাটগুলো ব্যবহার করার চিন্তা করুন আপনার ব্যাকআপ সাইজ ছোট করার জন্য।
সময়ের সাথে সাথে আপনি বুঝতে পারবেন কমপ্রেশন লেভেল এবং কমপ্রেস করতে লাগা টাইম এবং CPU-এর মধ্যে একটি ট্রেড-অফ আছে। আপনি শিখবেন কোথাও আপনাকে কুইক কিন্তু কম ইফেক্টিভ কমপ্রেশন দরকার, এবং কোথাও আপনাকে হাই লেভেল কমপ্রেশন দরকার এবং আপনি কিছুটা বেশি অপেক্ষা করতে পারেন।