বাশ থেকে ফাইল এক্সটেনশানটি কীভাবে পাব? আমি যা চেষ্টা করেছি তা এখানে:
filename=`basename $filepath`
fileext=${filename##*.}
এটি করার মাধ্যমে আমি bz2
পাথ থেকে সম্প্রসারণ পেতে পারি তবে পথটিতে /dir/subdir/file.bz2
আমার সমস্যা রয়েছে /dir/subdir/file-1.0.tar.bz2
।
যদি সম্ভব হয় তবে আমি কেবল বাহ্যিক প্রোগ্রাম ছাড়াই ব্যাশ ব্যবহার করে সমাধানটি পছন্দ করব।
আমার প্রশ্নটি পরিষ্কার করার জন্য, আমি কেবলমাত্র একটি কমান্ড দ্বারা কোনও প্রদত্ত সংরক্ষণাগারটি বের করার জন্য একটি বাশ স্ক্রিপ্ট তৈরি করছিলাম extract path_to_file
। ফাইলটি কীভাবে এক্সট্রাক্ট করা যায় তা স্ক্রিপ্ট দ্বারা তার সংক্ষেপণ বা সংরক্ষণাগার প্রকারটি দেখে নির্ধারণ করা হয়, এটি .tar.gz, .gz, .bz2 ইত্যাদি হতে পারে I আমি মনে করি এটিতে স্ট্রিং ম্যানিপুলেশন জড়িত থাকতে হবে, উদাহরণস্বরূপ যদি আমি এক্সটেনশন .gz
পাই তবে আমি এর .tar
আগে স্ট্রিং রয়েছে কিনা তা .gz
খতিয়ে দেখা উচিত - যদি তাই হয় তবে এক্সটেনশনটি হওয়া উচিত .tar.gz
।
.tar.bz2