নির্দিষ্ট ব্যবহারকারীর জন্য মোট ডিস্ক ব্যবহার


12

আমি একটি নির্দিষ্ট ফাইল সিস্টেমে নিজের জন্য মোট ডিস্কের ব্যবহার দেখতে চাই। আমি আদেশটি কার্যকর করেছিলাম

du -h ~my_user_name

যাইহোক, এটি মালিকানাধীন প্রতিটি ডিরেক্টরি তালিকাভুক্ত করে my_user_name। আমি এই সমস্ত তথ্যের মোট যোগফল পেতে চাই। পাস করার উপযুক্ত বিকল্পটি কী? আমি চেষ্টা করেছিলাম

du -h -c ~my_user_name

কিন্তু এটি কার্যকর হয়নি।

উত্তর:


11

পাস -sকরার duফলে আউটপুট কেবলমাত্র কমান্ড লাইনে নির্দিষ্ট আইটেমগুলিতে সীমাবদ্ধ থাকবে।

du -sh ~

9

ডু কেবলমাত্র আপনাকে প্রতি ফোল্ডারটিতে মোট প্রদর্শন করবে, প্রতি ব্যবহারকারী হিসাবে নয়।

আপনি যদি মোট আকার, বলতে /home/example_user/এবং বলতে চান তবে এটি কাজ করতে পারে এবং যদি কেবলমাত্র সেই উদাহরণ_ইউজারের সেই ফোল্ডারে ফাইল থাকে। যদি অন্য ব্যবহারকারীদের কাছে ফাইল থাকে তবে এটি আপনার মালিকানাধীন সমস্ত ফাইলের আকারের ফল দেয় না, তবে সেই ফোল্ডারের সমস্ত ফাইলের মোট আকার।

ব্যবহারকারী হিসাবে তথ্য পেতে, হয়:

  1. আপনার যদি কোটার সক্ষমতা থাকে তবে এই আদেশগুলি ব্যবহার করুন।
  2. ব্যবহারের এটি যদিও সব ডিরেক্টরি আপনি আপনার ফাইল গণনা করতে চান হেটে যেতে। ইউআইডি ব্যবহার করুন একমাত্র আপনার ফাইল নির্বাচন করুন ও একটি রাখা এসসিয়েতিভ আরে মোট গণনা awk হবে।

find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'

দ্রষ্টব্য, এটি নির্দিষ্ট এক্সটেনশান খুঁজে পেতে একটি জিএনইউ ব্যবহার করে।

  • প্রথম কমান্ডটি সমস্ত ফাইল এবং ডিরেক্টরিতে অতীত অনুসন্ধান করে /path/to/search/
  • -type fআপনি কেবল ফাইলগুলি নির্বাচন করেছেন তা নিশ্চিত করে, অন্যথায় আপনি ডিরেক্টরিগুলির আকারও গণনা করছেন। (একটি খালি ফোল্ডার তৈরি করার চেষ্টা করুন It এটি সম্ভবত 4 কে ডিস্কস্পেস ব্যবহার করবে)।
  • -user username_whos_files_to_count শুধুমাত্র একজন ব্যবহারকারীর কাছ থেকে ফলাফল নির্বাচন করে
  • -printf "%s\n" আকার মুদ্রণ করবে।

আপনি যদি এর প্রথম অংশটি চালান তবে আপনি সংখ্যার একটি তালিকা পাবেন। সেগুলি ফাইলের আকার। (অন্য সব কিছু ছিনিয়ে নেওয়া হয়েছে,% s মুদ্রণ কমান্ডের জন্য কেবল আকারটি মুদ্রিত হবে))

তারপরে একটি সংক্ষিপ্তসার পেতে আমরা এই সমস্ত সংখ্যা যুক্ত করতে পারি। উদাহরণস্বরূপ, এটি awk দিয়ে সম্পন্ন হয়েছে।


+1 ভাল পয়েন্ট, ধন্যবাদ! নীচের উত্তরটি আসলে আমি যা চেয়েছিলাম ঠিক তা ছিল। ব্যবহারকারী / ফোল্ডারের পার্থক্যটি আমার ক্ষেত্রে তেমন কিছু যায় আসে না
অ্যালেক্স

খুশী হলাম। du -schএটি একটি সহজ কমান্ড যা প্রায়শই ব্যবহৃত হয়। জিনিসগুলি যখন মিশ্রিত হয়েছিল তখন কার মালিকানা ছিল তা সন্ধান করা অনেক বেশি শক্ত যদিও এটি একটি লাইনার হিসাবে করা যায়। আমি এটি একবার ব্যবহার করেছি, তবে আজ এটির পুনর্গঠনে আমার সমস্যা হয়েছিল।
হেনেস

আমাকে অনেক সাহায্য করেছে, নিখুঁত ব্যাখ্যা
বাবিন লনস্টন

2

নির্দিষ্ট ব্যবহারকারীর দ্বারা সমস্ত ব্যবহার সন্ধান করার জন্য একটি ভাল কমান্ডটি হ'ল:

find -user $USER -type f -exec du -chs {} +

আপনি নির্দিষ্ট প্রয়োজনের উপর নির্ভর করে আরও সংশোধন করতে পারেন, উদাহরণস্বরূপ আমি প্রায়শই ফোল্ডার দ্বারা ব্যবহারের সংক্ষিপ্ত বিবরণ দিতে চাই এবং নীচেরগুলি ভালভাবে কাজ করে:

find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +

এটি কেবলমাত্র এক স্তরে ডিরেক্টরিগুলি খুঁজে পায়, ব্যবহারকারীর দ্বারা সীমাবদ্ধ করে, মূল ডিরেক্টরি বাদ দেয় এবং প্রতিটি ডিরেক্টরি এবং শেষে একটি সংক্ষিপ্তসার প্রিন্ট করে।

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