ফাইল ছোট করার জন্য অনেক উপায় এবং টুল আছে—স্পেস বাঁচাতে হোক বা কাউকে প্যাকেজ পাঠাতে হোক। এইসবের মধ্যে 7-জিপ (7-Zip) বেশিরভাগ ব্যবহারকারীর কাছে শীর্ষে পৌঁছেছে, কারণ এটি বিনামূল্যে عالی পারফরম্যান্স এবং কম্প্রেশন লেভেল দেয়।
এই ফরম্যাটে সব ধরনের কম্প্রেশন আমরা এখানে দেখব তার চেয়ে জটিল। কমপক্ষে অধিকাংশ ব্যবহারকারীর জন্য, যারা ফোল্ডার এবং সাব-ফোল্ডারের সব কিছু কম্প্রেস করে "বান্ডেল" বানাতে চান।
তাহলে দেখি, কিভাবে ব্যাশের এলিয়াস সাপোর্ট এবং 7z-এর কমান্ড-লাইন ভার্সনকে মিলিয়ে একটি সহজ কমান্ড দিয়ে ফাইল প্যাকেজ তৈরি করা যায়।
p7zip ইনস্টল করুন
সবচেয়ে জনপ্রিয় কম্প্রেশন টুল হলে 7-জিপ, তাই আপনার লিনাক্স ডিস্ট্রোতে এটি ইনস্টল থাকতে পারে। টার্মিনালে 7z কমান্ড চালিয়ে টেস্ট করুন। ইনস্টল না থাকলে উবুন্টু/ডেবিয়ান-ভিত্তিক ডিস্ট্রোতে এই কমান্ড দিয়ে ইনস্টল করুন:
sudo apt-get install p7zip-full
ব্যাশ এলিয়াস ফাইল তৈরি করুন
ব্যাশের এলিয়াস দিয়ে কমান্ড বা 멀্টি-কমান্ড সিকোয়েন্সকে একক শব্দে ম্যাপ করা যায়। এলিয়াস যোগ করার সহজ উপায় হল ~/.bashrc ফাইলের শেষে সেগুলো লিখা। কিন্তু সুবিধা এবং সংগঠনের জন্য আলাদা ফাইলে রাখা ভালো।
এই ফাইলটি সম্ভবত ইতিমধ্যে আছে, এবং ব্যাশের কনফিগারেশনে এর রেফারেন্স রয়েছে। আপনার প্রিয় টেক্সট এডিটরে ~/.bashrc খুলে নিচের অংশটি খুঁজুন:
if [-f ~/.bash_aliases]; then . ~/.bash_aliases Fi
না থাকলে ফাইলের সব কন্টেন্টের পর এই লাইনটি যোগ করুন।
7-জিপের তথ্য হাতে রাখুন
টার্মিনালে 7-জিপ চালিয়ে এর কমান্ড-লাইন অপশনগুলো দেখতে পারেন। বিস্তারিত জানতে ইউজার গাইড বা ম্যান পেজ দেখুন:
man 7z
এইগুলো আপনার নিজের কম্প্রেশন কমান্ড সেটআপে সাহায্য করবে। নিচের কমান্ডগুলো আপনার প্রয়োজনের অধিকাংশ কভার করবে, তাই কপি-পেস্ট করে .bash_aliases ফাইলে বসিয়ে দিন।
আল্ট্রা-কম্প্রেশন এলিয়াস তৈরি করুন
~/.bash_aliases ফাইলটি আপনার প্রিয় এডিটরে খুলুন (আমরা ন্যানো ব্যবহার করছি)। নিচের লাইনটি লিখুন:
alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'
alias 75 মানে আমরা 75 নামক একটি কমান্ড তৈরি করছি, যা ব্যবহার করে একটি ডিরেক্টরির সকল ফাইল ও ফোল্ডারকে 7-জিপ বান্ডলে কম্প্রেস করা যাবে। এই অদ্ভুত নামের কারণ: এটি সহজে মনে পড়ে "7zip কম্প্রেশন লেভেল 5"-এর সংক্ষিপ্ত রূপ।
7z হল কম্প্রেশন কমান্ড। এর পর a মানে "নতুন কম্প্রেসড প্যাকেজে ফাইল যোগ করুন"। -r ইঙ্গিত দেয় p7zip কেবল রান করা ফোল্ডারটিতে সীমাবদ্ধ থাকবে না, বরং সাব-ফোল্ডার এবং তাদের কন্টেন্টও অন্তর্ভুক্ত করবে।
-t7z -m0=lzma2 নির্দেশ করে আমরা 7zip প্যাকেজ চাই যা প্রাথমিকভাবে LZMA2 অ্যালগরিদম ব্যবহার করে। এটি অধিকাংশ ফাইল টাইপের জন্য সেরা কম্প্রেশন দেয়।
-mx=9 -myx=9 কম্প্রেশন লেভেল এবং 7-জিপ ফাইল বিশ্লেষণে কতনা "প্রচেষ্টা" করবে তা নির্দেশ করে। মান যত বেশি, কম্প্রেশন তত ভালো এবং বান্ডেল তত ছোট।
শেষে -mqs=on -ms=on "সলিড" কম্প্রেশন অন করে। এতে p7zip একসাথে একই টাইপের ফাইলগুলোক চানকে ডেটা চাঙ্ক হিসেবে কম্প্রেস করে, আরও ভালো ফলাফল দেয়। কিন্তু এর দুটি ডিমেরিটও আছে: কম্প্রেশন টাইম বাড়ায় এবং ফাইনাল বান্ডেল থেকে স্বাধীনভাবে কোনো একক ফাইল এক্সট্র্যাক্ট করা যায় না—পুরো বান্ডেল ডিকম্প্রেস করতে হয়।
এলিয়াস কপি করে "কাট-ডাউন" করুন
আমরা সর্বোচ্চ কম্প্রেশন দেয়া কমান্ড থেকে শুরু করলাম, যাতে পরে প্যারামিটার বেড়াতে না হয়ে কমিয়ে কম লেভেলের কমান্ড বানানো যায়।
উপরোক্ত কমান্ডটি পাঁচবার কপি করুন, প্রতিটি আলাদা লাইনে। প্রথম লাইন যেন থাকে (সর্বোচ্চ কম্প্রেশন)। বাকিগুলো ক্রমশः এক্সট্রা অপশন বাদ দিয়ে এবং কম্প্রেশন লেভেল কমিয়ে মডিফাই করুন। এলিয়াস নামও লOWER লেভেল অনুযায়ী পরিবর্তন করুন। নিচের ব্লকটি কপি করে ~/.bash_aliases-এ পেস্ট করুন:
alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on' alias 74='7z a -r -t7z -m0=lzma2 -mx=9' alias 73='7z a -r -t7z -m0=lzma2 -mx=7' alias 72='7z a -r -t7z -m0=lzma2 -mx=5' alias 71='7z a -r -t7z -m0=lzma2 -mx=3' alias 70='7z a -r -t7z -m0=lzma2 -mx=1'
এলিয়াসগুলো এক্টিভেট করুন
ফাইল সেভ করে টার্মিনালে ফিরে আসুন। নতুন এলিয়াসগুলো লোড ও এক্টিভেট করার জন্য:
source ~/.bashrc
আপনার নতুন কম্প্রেশন কমান্ডগুলো এখন রেডি। প্যাকেজের নাম দিয়ে 7z ডিফল্টভাবে কারেন্ট ডিরেক্টরির সব ফাইলে কাজ করে। এখন থেকে কোনো ফোল্ডারের কন্টেন্ট 7z প্যাকেজে কম্প্রেস করতে শুধু লিখুন:
75 archive_name
এখানে 75 হলো সর্বোচ্চ কম্প্রেশন-এর এলিয়াস, আর archive_name হলো আউটপুট ফাইলের নাম। 75-এর জায়গায় 74 থেকে 70 পর্যন্ত যেকোনো এলিয়াস দিয়ে দ্রুত কিন্তু কম কম্প্রেশন পেতে পারেন।
প্রশ্ন থাকলে কমেন্টে জানান।