আমি জিএনইউ টার ব্যবহার করি। ফাইলগুলি সংকুচিত / সংক্রমিত করার সময় এটি সংক্ষেপণের ধরণটি স্বয়ংক্রিয়ভাবে সনাক্ত করতে পারে। তবে আমার স্টিডিন থেকে একটি সংরক্ষণাগারটি সংক্ষেপণ করা দরকার এবং সংকোচনের ধরণটি অজানা। আমি লক্ষ্য করেছি যে টার আমাকে সঠিক পরামর্শ দেওয়ার মতো করে দিতে পারে:
tar: Archive is compressed. Use -z option
তবে আমি তার যুক্তিটি ইনপুট করতে না বলেই ট্যারটি সেই সংকোচন বিকল্পটি স্বয়ংক্রিয়ভাবে ব্যবহার করতে চাই । আমি এটা কিভাবে করবো? এটি ইতিমধ্যে সংকোচনের ধরণটি জানে বলেই কেবল ডার সংক্ষেপণ নয় কেন?
ধন্যবাদ!
tar
কোন ধরণের ডেটা রয়েছে তা জানে না stdin
এবং ততক্ষণে আনপ্রেস প্রোগ্রামটি কল করতে খুব দেরি হয়। এটি gzip, bzip2 এবং অন্যদের সমর্থন করে। এই সমস্যার চারপাশে কাজ করা সহজ নয় (এটি ডেটা বাফার করতে হবে), তাই এটি আপনাকে আবার চেষ্টা করতে বলে।
fork()
/ exec()
পদ্ধতি ব্যবহার করতে পারে না । ইউটিলিটি stdin
পাইপ থেকে পড়বে এবং প্রথম 4 কে এখন অনুপস্থিত হবে। পাইপ পড়ার পরে ডেটা ফেরত দেওয়ার কোনও উপায় নেই।
cat buffer - | gunzip
। (বিকল্পভাবে, অতিরিক্ত প্রক্রিয়াটির প্রয়োজনীয়তা এড়াতে অ-ব্লকিং আই / ও ব্যবহার করা যেতে পারে))