`-L` পতাকা সহ` du` কমান্ডের আচরণ


11

duকমান্ডের সাথে একটি অদ্ভুত আচরণ লক্ষ্য করেছি যখন এটি -Lকমান্ড লাইন বিকল্পের সাথে ব্যবহৃত হয় ।

আমি স্ল্যাকওয়ার 14 এবং কোরিউটিলস 8.19 ব্যবহার করছি।

অদ্ভুত আচরণ পুনরুত্পাদন করতে, দুটি ফোল্ডার তৈরি করুন:

mkdir foo
mkdir bar

ফোল্ডারের একটির মধ্যে একটি ফাইল তৈরি করুন:

perl -e 'print "A"x10000' > foo/text

এবং অন্য ফোল্ডারে একটি সিমিলিংক:

ln -s ../foo/text bar/text

এখন, আপনি টাইপ করুন:

du -h -L bar

তুমি পাবে:

16k bar

যেহেতু সিমলিংকটি অবজ্ঞাত ছিল। তবে আপনি যদি টাইপ করেন:

du -h -L *

তুমি পাবে:

16K     foo
4.0K    bar

এবং সিমিলিংকটি অবজ্ঞাত হবে না। আমি কিছু অনুপস্থিত করছি?


মনে হয় duএখানে চালাক খেলতে চাইছে, তবে আপনি যদি চালনা করেন df -a -L bar fooতবে আউটপুটটি খুব ভুল হয় (বারে 16 কে গণনা খালি ফেলে রাখা)।
গাইড

উত্তর:


18

ডিফল্টরূপে, duপ্রতিটি ফাইল একাধিকবার সংযুক্ত থাকলে কেবল একবার গণনা করবে। আপনি যদি চালনা du -L barকরেন তবে ফাইলটি গণনা করা হবে কারণ এটি কেবল একবারে পৌঁছায়। তবে আপনি du -L *এটি চালিয়ে গেলে এটি প্রথমবার এটি দেখলেই তা গণনা করবে। উদাহরণ স্বরূপ:

$ du -L foo bar
16K     foo
4.0K    bar

$ du -L bar foo
16K     bar
4.0K    foo

লক্ষ্য করুন যে আর্গুমেন্টের ক্রমটি অদলবদল করলে কোন ফোল্ডারটি 16 কে হিসাবে রিপোর্ট হবে।

প্যারামিটারটি duপাস করে আপনি দুবার ফাইল গণনা করতে বাধ্য করতে পারেন -l

সম্পাদনা:

প্রতীকী লিঙ্কগুলি একটি বিশেষ ধরণের ফাইল এবং লিঙ্কটি অনুসরণ করার জন্য একটি অতিরিক্ত পদক্ষেপ প্রয়োজন। বিকল্পটি সক্ষম duনা করা হলে প্রতীকী লিঙ্কগুলি অনুসরণ করবে না -L

অন্যদিকে একটি হার্ড লিঙ্ক, মূলত দুটি (বা আরও) ফোল্ডারে একটি ফাইল বিদ্যমান। duএগুলি দুটিবার গণনা এড়াতে সম্ভবত ইনোড নম্বর দিয়ে কোন ফাইলগুলি দেখেছিল তা ট্র্যাক করে। -lএই আচরণটি অক্ষম করে।

সুতরাং, ন্যায়সঙ্গতভাবে -L, এটি প্রতীকী লিঙ্কটি অনুসরণ করবে, তবে যদি লক্ষ্য ফাইলটিতে একটি ইনোড নম্বর থাকে তবে এটি ইতিমধ্যে দেখে ফেলেছে এটি পুনরায় গণনা করা হবে না। কেবল -lএটির সাথে সদৃশ শক্ত লিঙ্কগুলি গণনা করা হবে, তবে প্রতীকী লিঙ্কগুলি অনুসরণ করবে না।

আপনি যদি -lএবং -Lএকসাথে ব্যবহার করেন তবে এটি উভয়ই প্রতীকী লিঙ্কগুলি অনুসরণ করবে এবং লক্ষ্য ফাইল (গুলি) একাধিকবার গণনা করার অনুমতি দেবে।


ধন্যবাদ. এইটা কাজ করে. তবে আমি কিছু অতিরিক্ত ব্যাখ্যা দিতে চাই। মানুষ পৃষ্ঠায়, আমি পড়তে যে -lকরে count sizes many times if hard linked, কিন্তু এখানে আমি সিমবলিক লিঙ্ক সঙ্গে কাজ করছি। তদুপরি, -lএকা সমস্যাটি সমাধান করে না, যখন আমি উভয় ব্যবহার করি -lএবং -Lএটি আকারকে সঠিকভাবে গণনা করে।
জাগোরাক্স

@ জাগোরাক্স হ্যাঁ, ম্যান পৃষ্ঠাটি কীভাবে -lএবং কীভাবে -Lইন্টারঅ্যাক্ট করবে সে সম্পর্কে কিছুটা অস্পষ্ট । একটি মন্তব্য করার জন্য ব্যাখ্যাটি কিছুটা দীর্ঘ হয়েছে, তাই আমি আমার উত্তর আপডেট করেছি।
ডেভিড ব্যাগারম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.