-V (ভার্বোস) স্লো কমান্ডগুলি ব্যবহার করে?


34

এই প্রশ্নে: ব্যাশে ডিরেক্টরি মুছে ফেলা ছাড়া ডিরেক্টরিতে সমস্ত ফাইল এবং উপ-ডিরেক্টরিগুলি কীভাবে সরিয়ে ফেলা যায়? কোনও ফোল্ডারে সমস্ত ফাইল কীভাবে মুছবেন তা জিজ্ঞাসা করা হয়, এবং ফোল্ডারটি নিজেই নয়।

ম্যাট এর উত্তম উত্তরের মধ্যে 'আরএম' কমান্ডের -v পতাকা ব্যবহার অন্তর্ভুক্ত রয়েছে।

rm -rfv dontDeleteMe && mkdir dontDeleteMe

আমি যে আদেশটি দিয়েছিলাম তা উপরেরটি ছিল। অবশ্যই কার্যকরভাবে, তবে -v পতাকাটি কি 'rm' এবং / অথবা সাধারণভাবে কমান্ড লাইনের মাধ্যমে ধীর গতিতে কাজগুলি কমিয়ে দেয়?

আমার কাছে .txt-ফাইলগুলির সাথে একটি ফোল্ডার রয়েছে (এর মধ্যে প্রায় 100.000) যা আমি কয়েকবার নিজের জন্য তৈরি করেছি, মুছে ফেলেছি এবং পুনরায় তৈরি করেছি। কিছু সময় আরএম এর সাথে, কখনও কখনও ফাইল ব্রাউজারে এবং আমি অনুভব করি যে উপরের শো হিসাবে আরএম-কমান্ডটি ব্যবহার করা আরও ধীর হয়। এর সাথে -v পতাকাটির কিছু আছে কি?

উত্তর:


37

হ্যাঁ, -v পতাকা কমান্ডটি ধীর করে দেয়।

বেশিরভাগ, সমস্ত সফ্টওয়্যার না হলে (বা কমান্ডগুলি) পতাকা সরবরাহ করা হয়েছে কিনা তা পরীক্ষা করে দেখবে এবং তারপরে পতাকা সম্পর্কিত একটি গোছা কোড কার্যকর করল। -V ফ্ল্যাগের ক্ষেত্রে, তারা সম্ভবত একগুচ্ছ আউটপুট কমান্ডগুলি কার্যকর করতে পারে (যেমন echoবা printf), যা তারা বরং পতাকা ছাড়াই ছেড়ে দিত।

এর অর্থ প্রসেসরের আরও নির্দেশাবলীর চক্র এবং এর ফলে আরও কার্যকর করার সময়।

আপনি বার্তাটি পড়তে / প্রয়োজন না পড়লে আপনি যদি -v পতাকা ব্যবহার না করেন তবে ভাল।

অন্যদিকে, সিআইএলই / জিইআইআই এর চেয়ে দ্রুত হওয়া উচিত, ধরে নেওয়া যে আপনি কমান্ডগুলি টাইপ করতে এবং Enterকী টিপতে প্রয়োজনীয় সময় অন্তর্ভুক্ত করবেন না ।

সুপারভাইজারের এই ব্লগ থেকে এই চিত্রটি মন্থরতাটি খুব ভালভাবে ব্যাখ্যা করেছে

এখানে চিত্র বর্ণনা লিখুন

সুনির্দিষ্ট নির্দিষ্ট কমান্ডের জন্য, টাইম কমান্ডের ফলাফলগুলি results

//with -v
real    0m8.753s
user    0m0.816s
sys     0m2.036s

//without -v
real    0m1.282s
user    0m0.124s
sys     0m1.092s

এটি 100000 খালি ফাইল ধারণকারী ডিরেক্টরিতে সম্পন্ন হয়েছিল


9
আমি "ইকো কমান্ড" বলব না। বেশিরভাগ প্রোগ্রামগুলি বাশ স্ক্রিপ্ট হয় না তাই তারা প্রতিধ্বনি কল করে না । সমস্যাটি হ'ল তারা stdout (বা stderr ) এ লিখছেন , অন্য কথায়, তারা I / O ক্রিয়াকলাপ সম্পাদন করছে, যার জন্য সময় প্রয়োজন (I / O ব্যয়বহুল) এবং তাদের সিস্টেম কলগুলিও প্রয়োজন (যার অর্থ আরও প্রসঙ্গের সুইচ এবং তাই) আরও ক্যাশে মিস ইত্যাদি)।
বাকুরিউ

23
স্টাডাউটে লেখার মূল সমস্যাটি সেই বিষয়বস্তুর প্রকৃত উপস্থাপনা; আপনি যদি স্টডআউটকে কোনও ফাইলে পুনর্নির্দেশ করেন, বা /dev/null, টার্মিনাল এমুলেটরটিতে পাঠ্য প্রদর্শন করার ক্ষেত্রে পারফরম্যান্স প্রায় এতটা বাধা নয়।
জ্যাকব কুলরে

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

আপনি যখন এসএসএইচ দিয়ে কোনও রিমোট মেশিনে কমান্ডটি চালান তখন সবচেয়ে বেশি প্রভাব এবং সম্ভবত এটিই একমাত্র সত্য যেখানে বিষয়টি গুরুত্বপূর্ণ। ভারবোজ লগিং সহজেই দশ হাজার মেগাবাইট ট্র্যাফিক তৈরি করতে পারে যা হোস্ট থেকে আপনার কনসোলে প্রেরণ করতে হবে। আমি এসএসএইচ দিয়ে চলেছি এমন স্ক্রিপ্ট থেকে অতিরিক্ত কনসোল লগিং অপসারণের পরে আমি একবার 10x এর ক্রমযুক্ত গতি অর্জন করেছি।
সের্গে

5

কেন নিজেকে খুঁজে বের করবেন না: সময় ব্যবহার করুন।

$ time rm -rfv dontDeleteMe && mkdir dontDeleteMe
real    0m0.003s
user    0m0.001s
sys     0m0.002s

$ time rm -rf dontDeleteMe && mkdir dontDeleteMe
real    0m0.002s
user    0m0.001s
sys     0m0.001s

10
এটি আসলে প্রশ্নের উত্তর দেয় না। প্রতিটি কমান্ডের একক রানের মধ্যে 1 এমএসের পার্থক্য অনেক কারণের কারণে ঘটতে পারে। আপনি -vআউটপুট বাদ দিলে বা ডিরেক্টরিটি ফাঁকা থাকলে তাও পরিষ্কার নয় ।

ধীর গতির উল্লেখ না করা অতিরিক্ত সম্পাদিত নির্দেশাবলী থেকে নয়, তবে এটি কোনও ফাইল বা টার্মিনালে লেখার প্রক্রিয়া থেকে। time' pretty much redirects the output to আপনার / dev / নাল '।
কোল জনসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.