Temporaries তৈরি ছাড়া ফাইল পুনরায় করুন


0

হয়তো এটি সর্বোত্তম আমি শুধু ব্যবহার ক্ষেত্রে বন্ধ শুরু।
আমি একটি বড় জিপ ফাইল আছে অনেক ফাইল পূর্ণ এবং আমি মূলত একটি কম সংকোচনের স্তরে zipped ছিল সন্দেহ।

আমি সেটি থেকে একটি নতুন জিপ ফাইল তৈরি করতে চাই (অথবা নতুন নয়, আশেপাশে আশেপাশে) এটি ভাল সংকুচিত হয় কিনা তা নিশ্চিত করতে ( -9 ) প্রথমে এটি ডিস্কে আনজিপ না করে (আকারের মতো এবং মাউন্ট করা NFS হওয়া বিভিন্ন কারণে)। তাই যখন আমি শুধু করতে পারে

mkdir tmp/ && unzip -d tmp/ A.zip && cd tmp/ && zip -r -9 ../B.zip *; rm -rf tmp/ A.zip

যে [অস্থায়ীভাবে] একটি বিশাল পরিমাণ তথ্য তৈরি করবে (দী unzipped ফাইল এবং B.zip আগে অস্তিত্ব মধ্যে আসা A.zip মুছে ফেলা).
আমি সত্যিই লাইন বরাবর কিছু চাই:

rezip -9 A.zip

অথবা, একটি জন্য নিষ্পত্তি B.zip:

unzip -<output to stdout> A.zip | zip -9 B.zip && rm -f A.zip

কিন্তু আমি বুঝতে পারছি যে এটি সম্ভবত সম্ভব নয় কারণ পাইপগুলি একাধিক ফাইলের জন্য ব্যবহার করা হবে এবং ফাইল নামগুলি যেমন হারিয়ে যাবে।

সুতরাং, আমি ভাবছি যে প্রতিটি ফাইলের মতো কিছু কোড চালানোর উপায় আছে কিনা find -exec <command>

unzip A.zip -exec zip -r B.zip && rm -f A.zip

কিন্তু আবার, এই কিভাবে কাজ করবে বা অনিশ্চিত, যদি এই দ্বারা সহজ না হয় unzip / zip, একটি কমান্ড বিদ্যমান আছে কিনা।

আমি আমার বর্তমান, এখনও ব্যবহারযোগ্য টেম্পস ব্যক্তিগত ফাইলগুলির সমাধান হিসাবে একটি উত্তর হিসাবে কাজ করে যেহেতু এটি কেউকে সাহায্য করতে পারে, যদিও এটি কোনও প্রশ্নের উত্তর দেয় না কোন temporaries অনুমতি

উত্তর:


0

আমি পেতে পারে হিসাবে এই কাছাকাছি

zipinfo -1 A.zip | 
xargs -l sh -c '
    unzip A.zip "$0" &&
    zip -9 A.zip "$0"; 
    rm -f "$0"
'

কোন এক সময়ে জিপ প্রতিটি ফাইলের জন্য শুধুমাত্র একটি tmp ফাইল তৈরি করে।
আমি জিপ থেকে একটি উপায় খুঁজে পেতে পারেন stdin এবং একটি ফাইল নাম পাস, আমি unzip এর ব্যবহার করতে সক্ষম হব -p পরিবর্তে সব পথ পাইপ ব্যবহার করুন।

zipinfo -1 A.zip | 
xargs -l sh -c '
    unzip -p A.zip "$0" | 
    zip -9 A.zip -<use this filename> "$0"
'

কিন্তু এটা কঠিন প্রমাণ করা হয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.