আমি যখন জিপ ব্যবহার করি, তখন আমি কীভাবে কমান্ড লাইনে প্লাবন না করে সামগ্রিক অগ্রগতি প্রদর্শন করতে পারি?


25

একটি নির্দিষ্ট দৈর্ঘ্যের অগ্রগতি বার, একটি ফাইল বা বাইট গণনা, বা আরও ভাল একটি টাইমার আনুমানিক সময় বাকি দেখায় আদর্শ হবে।

zipপ্রমিত প্রক্রিয়াজাত প্রতিটি ফাইলের জন্য একটি লাইন প্রিন্ট করা মনে হয়, তবে আমি হাজার হাজার ফাইল জিপ করার সময় সেই তথ্যটি ওভারলোড চাই না। আমি এটি অনুমান করতে চাই যে এটি কতটা সময় নিতে চলেছে।

আমি চেষ্টা -q( --quiet) সঙ্গে একযোগে বিকল্প -dg( --display-globaldots) কিন্তু যে শুধু বন্যা বিন্দু একাধিক লাইনের সঙ্গে stdout- এ এবং কোন দরকারী ইঙ্গিত দেয়।

-qdgds 10mম্যান পৃষ্ঠায় উল্লিখিত হিসাবে আমি চেষ্টা করেছি , কিন্তু একই ফলাফল পেয়েছি।

আমি তখন -db( --display-bytes) এবং -dc( --display-counts) চেষ্টা করেছিলাম কিন্তু সেখানে কোনও বৈশ্বিক বিকল্প বলে মনে হচ্ছে না, তাই এটি প্রতিটি ফাইলের জন্য আবার এটি মুদ্রণ করে।

শেষ অবধি, আমি এটির -qমতো একসাথে চেষ্টা করেছি -qdbdc, তবে এটি কিছুই লাভ করে না।

মজাদারভাবে যথেষ্ট, আমি তথ্য-জিপ সাইটে একটি ম্যান পৃষ্ঠা পেয়েছি যাতে একটি -de( --display-est-to-go) বিকল্পের উল্লেখ রয়েছে যা "সংরক্ষণাগার অপারেশন শেষ করার জন্য সময়ের অনুমান প্রদর্শন করা উচিত"।

এটি আমি যা চাই ঠিক তা মনে হয় তবে সমস্যাটি হ'ল আমার সংস্করণটিতে zipএই বৈশিষ্ট্যটি নেই। আমি উবুন্টু 14.04.1 64 বিট, বাশ -4.3.30 (1) এবং জিপ -3.00 ব্যবহার করছি। উইকিপিডিয়া অনুসারে এটি জিপের সর্বশেষতম স্থিতিশীল প্রকাশ।

তথ্য-জিপ সোর্সফোজ পৃষ্ঠাতে অপ্রকাশিত বিটা সংস্করণ রয়েছে তবে আমি আমার ডেটা একটি বিটা রিলিজের উপর অর্পণ করব না।


কোনও ফাইলে আউটপুট লগইন করুন এবং এর সাথে উচ্চ স্তরের তথ্য সরবরাহ করতে ব্যবহার করুন tee। জিপ শুরু করার আগে, ফাইলগুলি ( lsবা এর সাথে find -type f) একটি মোট গণনা করুন এবং এটি জিপ করার সময়, ইতিমধ্যে প্রসেসযুক্ত ফাইলগুলির লাইন সংখ্যা ( grepসঠিক লাইনের সাথে দেখার wc -lজন্য এবং লাইনগুলির জন্য ) লগ ফাইলটি পড়ুন গণনা), সুতরাং আপনার উচ্চ স্তরের তথ্য "234/76438 ফাইল প্রক্রিয়াজাতকরণ" এর মতো কিছু দেখায়;
অ্যাকোরিয়াস পাওয়ার

আপনি মোট ফাইলের আকার বিবেচনা করে এবং ইতিমধ্যে প্রক্রিয়া করা ফাইলগুলির আকার যাচাই করে সময় নির্ধারণ করতে পারবেন; তবে ... এমনকি একই আকারের ফাইলগুলি প্রক্রিয়া করতে বিভিন্ন সময় নেয় তাই এটি সর্বদা বন্য অনুমান হবে ...
কুম্ভ শক্তি পাওয়ার

জিপ ফাইলগুলি তৈরি করার সময় আপনি pv /path/to/file | gzip > /path/to/file.gz
স্টিডিন

উত্তর:


11

zipস্ট্যান্ডার্ড আউটপুটে তথ্য সংকুচিত করতে পারে। অতএব, আপনি এটিকে অন্যান্য সরঞ্জামগুলির সাথে একত্রিত করতে পারেন pv:

zip -qr - [folder] | pv -bep -s $(du -bs [folder] | awk '{print $1}') > [file.zip]

-bepআপনার সুবিধার্থে বিকল্পগুলির একটি অপসারণ করুন।


এর জন্য ধন্যবাদ! আমি এটি আমার ম্যাক (ব্রিউ ইনস্টল পিভি, ব্রিউ ইনস্টল কোরিউটিলস, এবং ডু প্রতিস্থাপন জিডিইউ) তে করি।
জেফ ২

6

আপনি যদি 7z ব্যবহার করে ঠিক থাকেন:

7z a output.zip folder/

এটি আপনাকে এর মতো একটি অগ্রগতি বার দেবে:

Open archive: test.zip
--
Path = test.zip
Type = zip
Physical Size = 232039663

Scanning the drive:
3 folders, 2401 files, 238122225 bytes (228 MiB)

Updating archive: test.zip

Items to compress: 2404

 16% 279 U folder/file.txt  

2

আমি নিম্নলিখিতটি সফলভাবে ব্যবহার করেছি:

zip -r [target_zip] [folder_to_zip] 2>&1 | 
pv -lep -s $(ls -Rl1 [folder_to_zip] | egrep -c '^[-/]') > /dev/null

এবং এটি নীচে ব্যাখ্যা করা হয়েছে:

জিপ-আর [টার্গেট_জিপ] [ফোল্ডার_ টো_জিপ] 2> & 1 |

[টার্গেট_জিপ] ফাইলটিতে পুনরাবৃত্তভাবে জিপ করুন [ফোল্ডার_ টো_জিপ] স্টার্ডারকে স্টাডাউটে পুনর্নির্দেশ। দ্রষ্টব্য, স্ট্যাডারটিতে প্রতিটি ফাইল এবং ডিরেক্টরি প্রক্রিয়া করার জন্য একটি লাইন থাকবে ।

pv -lep -s $ (ls -Ral1 [ফোল্ডার_ টো_জিপ] | egrep -c '^ [- /]')> / দেব / নাল

জিপি থেকে আউটপুট হওয়ায় ফাইলের নামগুলি দিয়ে পিভিগুলিতে পাইপ দিন। পিভি লাইন মোডে পরিচালিত হয় (লাইন এবং আকারের উপর ভিত্তি করে অগ্রগতি গণনা করা লাইন সংখ্যাটিও প্রত্যাশা করে - পিভি ম্যান পৃষ্ঠা -l বিকল্পটি দেখুন )।

প্রত্যাশিত লাইনগুলির মোট আকারটি পুনরাবৃত্তভাবে [ফোল্ডার_ টো_জাইপ] তালিকাভুক্ত করে এবং '-' বা 'ডি' দিয়ে শুরু হওয়া লাইনগুলি গণনা করে সমস্ত ফাইল এবং ডিরেক্টরিগুলি (মনে রাখবেন ডিরেক্টরিগুলি '/' দিয়ে শুরু হয়)

উপরোক্ত সমস্ত ফাইল এবং ডিরেক্টরি প্রক্রিয়া করার সময় 100% পৌঁছানোর সাথে সাথে সমাপ্তির সঠিক শতাংশ সরবরাহ করে।

পেড্রোপেটারোর উত্তরের সমস্যাটি হ'ল অগ্রগতিটি প্রক্রিয়াজাত মোট বাইটের সংখ্যা (সংকুচিত) উপর প্রসেস করা বাইট সংখ্যা (সংকুচিত) দ্বারা গণনা করা হয়। ফলস্বরূপ প্রক্রিয়াটি প্রায় 30% এ শেষ হবে (সংক্ষেপণের হারের উপর নির্ভর করে)।

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