যেহেতু টার ফাইলগুলি স্ট্রিমিং ফর্ম্যাট - আপনি সেগুলির cat
দুটি এক সাথে করতে পারেন এবং প্রায় সঠিক ফলাফল পেতে পারেন - এটি করার জন্য আপনার এগুলিকে ডিস্কে বের করার দরকার নেই। আপনি ফাইলগুলি কেবল সংক্ষেপিত করতে (কেবল), তাদের একত্রে সংমিশ্রণ করতে এবং সেই স্ট্রিমটি পুনরায় সংক্ষেপণ করতে পারেন:
xzcat *.tar.xz | xz -c > combined.tar.xz
combined.tar.xz
কম্পোনেন্ট টার্বলগুলির সমস্ত ফাইলের সংকুচিত টার্বল হবে যা কেবল সামান্য দূষিত। নিষ্কাশন করতে, আপনাকে --ignore-zeros
বিকল্পটি (জিএনইউতে tar
) ব্যবহার করতে হবে , কারণ সংরক্ষণাগারগুলিতে একটি "ফাইলের শেষ" চিহ্ন রয়েছে যা ফলাফলের মাঝামাঝি সময়ে উপস্থিত হবে। এটি বাদে, যদিও সবকিছু সঠিকভাবে কাজ করবে।
জিএনইউ সম্মিলিত আর্কাইভ উত্পাদন করার জন্য tar
একটি --concatenate
মোড সমর্থন করে । উপরের মতো একই সীমাবদ্ধতা রয়েছে - আপনাকে --ignore-zeros
নিষ্কাশন করতে অবশ্যই ব্যবহার করতে হবে - তবে এটি সংকোচিত সংরক্ষণাগারগুলির সাথে কাজ করে না। প্রক্রিয়া প্রতিস্থাপন ব্যবহার করে এটিকে কাজে লাগাতে আপনি কিছু তৈরি করতে পারেন তবে এটি একটি ঝামেলা এবং আরও ভঙ্গুর।
যদি বিভিন্ন টর ফাইলগুলিতে একাধিকবার উপস্থিত ফাইল থাকে তবে এটি সঠিকভাবে কাজ করবে না, তবে আপনি নির্বিশেষে এই সমস্যাটি পেয়েছেন। অন্যথায় এটি আপনাকে যা দিতে তা দেবে - আউটপুটটি পাইপিংয়ের মাধ্যমে xz
কীভাবে tar
তার আউটপুটকে সংকুচিত করা যায়।
কেবলমাত্র একটি নির্দিষ্ট tar
বাস্তবায়ন নিয়ে কাজ করা সংরক্ষণাগারগুলি যদি আপনার উদ্দেশ্যগুলির জন্য পর্যাপ্ত না হয় তবে সংরক্ষণাগারটিতে আটকানো r
আপনার বন্ধু হ'ল:
tar cJf combined.tar.xz dummy-file
for x in db-*.tar.xz
do
mkdir tmp
pushd tmp
tar xJf "../$x"
tar rJf ../combined.tar.xz .
popd
rm -r tmp
done
এটি কেবলমাত্র একবারে একটি একক সংরক্ষণাগার উত্তোলন করে, তাই কাজের স্থানটি একটি একক সংরক্ষণাগারগুলির সামগ্রীর আকারের মধ্যে সীমাবদ্ধ। কম্প্রেশনটি ঠিক একইভাবে প্রবাহিত হচ্ছে আপনি একবারে চূড়ান্ত সংরক্ষণাগারটি তৈরি করে ফেলতে পারতেন, সুতরাং এটি আগের মতোই ভাল হবে। আপনি প্রচুর পরিমাণে ডিকম্প্রেশন এবং পুনরায় সংক্ষেপণ করেন যা এটি cat
সংস্করণগুলির চেয়ে ধীর করে দেবে , তবে ফলিত সংরক্ষণাগারটি কোনও বিশেষ সমর্থন ছাড়াই যে কোনও জায়গায় কাজ করবে।
নোট করুন - আপনি ঠিক কী চান তার উপর নির্ভর করে - কেবলমাত্র সংরক্ষণাগারটিতে সংকোচিত টার ফাইলগুলি যুক্ত করা পর্যাপ্ত হতে পারে। তারা একক ফাইলে তাদের লিখিত সামগ্রীর পাশাপাশি প্রায় (প্রায়) সংকোচিত করবে এবং এটি প্রতিটি ফাইলের সংক্ষেপণ ওভারহেডকে হ্রাস করবে। এটি দেখতে এমন কিছু দেখাচ্ছে:
tar cJf combined.tar.xz dummy-file
for x in db-*.tar.xz
do
xz -dk "$x"
tar rJf combined.tar.xz "${x%.xz}"
rm -f "${x%.xz}"
done
চূড়ান্ত সংকুচিত আকারের ক্ষেত্রে এটি সামান্য কম দক্ষ কারণ প্রবাহে অতিরিক্ত টার শিরোনাম রয়েছে তবে সমস্ত ফাইলগুলিকে ফাইল হিসাবে আহরণ এবং পুনরায় যুক্ত করতে কিছুটা সময় সাশ্রয় করে। আপনি combined.tar.xz
অনেকগুলি (সঙ্কুচিত) db-*.tar
ফাইল সমেত শেষ করবেন ।