হার্ড লিঙ্কগুলি উপেক্ষা করে ফোল্ডারের আকার কীভাবে পাবেন?


17

আমি ব্যাকআপগুলির জন্য আরএসএন্যাপশট ব্যবহার করি যা একই নামের ফাইলযুক্ত ফোল্ডারগুলির একটি সিরিজ উত্পন্ন করে। কিছু ফাইল হার্ড লিঙ্কযুক্ত, অন্যগুলি পৃথক। উদাহরণস্বরূপ, hourly.1/file1এবং hourly.2/file1একই ফাইলের সাথে শক্তভাবে লিঙ্কযুক্ত থাকতে পারে hourly.1/file2এবং hourly.2/file2সম্পূর্ণ পৃথক পৃথক ফাইল রয়েছে।

ফোল্ডারে যে ফাইলগুলিতে হার্ড লিঙ্ক রয়েছে সেগুলি hourly.2 উপেক্ষা করে আমি যে পরিমাণ জায়গাগুলি ব্যবহার করেছি তা সন্ধান করতে চাই hourly.1। সুতরাং উপরের উদাহরণে, আমি ফাইল 2 আকার পেতে চাই, তবে ফাইল 1 উপেক্ষা করুন।

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

উত্তর:


7

hourly.2কেবলমাত্র একটি লিঙ্ক রয়েছে এমন সমস্ত ফাইলের বাইটের মোট আকার :

$ find ./hourly.2 -type f -links 1 -printf "%s\n" | awk '{s=s+$1} END {print s}'

থেকে findমনুষ্যসৃষ্ট পৃষ্ঠা:

   -links n
          File has n links.

বাইটের পরিবর্তে কিলোবাইটে যোগফলটি ব্যবহার করুন -printf "%k\n"

বিভিন্ন লিঙ্ক গণনা সহ ফাইলগুলি তালিকাভুক্ত করতে find -links +1(একাধিক লিঙ্ক), find -links -5(পাঁচটি লিঙ্কেরও কম) এবং এর সাথে আরও খেলুন ।


1
যদি কোনও ফাইল কোনও ফাইলের মধ্যে একটি হার্ড লিঙ্ক থাকে তবে hourly2আপনার কমান্ডটি ভুল উত্তরটির প্রক্রিয়া করবে।
কিউংলম

@ জ্ঞাক - আচ্ছা হ্যাঁ - এটি ফাইলগুলি কীভাবে শেষ হয় তার উপর নির্ভর করে hourly.2। যদি সেগুলিকে সেখানে অনুলিপি করা হয় তবে তাদের অতিরিক্ত লিঙ্ক থাকবে না এবং আমার আদেশটি কাজ করবে। যদি তারা কঠোরভাবে সংযুক্ত থাকে তবে স্পষ্টতই এটি ব্যর্থ হবে। আমি ধরে নিচ্ছি নতুন ব্যাকআপ-ফাইলগুলি অনুলিপি করা হয়েছে।
গ্রেবনেকে

11

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

du -ks hourly.1 hourly.2 | sed -n '2s/[^0-9]*//p'

(যে কোনও পসিক্স সিস্টেম এবং বেশিরভাগ অন্যান্য ইউনিক্স ভেরিয়েন্টে কাজ করে Ass অনুমান করা হয় যে ডিরেক্টরিতে নামের hourly.1কোনও নতুন লাইন থাকে না))


কিছু অদ্ভুত কারণে ডু সবসময় আরএইচইল 5-তে হার্ডলিঙ্কযুক্ত ফাইলগুলি লক্ষ্য করে না - আমি যদি 'ডু-শির দির / সাব ডির' করি তবে দির জন্য আউটপুট একই রকম হয় যেমন আমি কেবল 'ডু-শির দির' বলেছি - আকার বাদ না দিয়ে 'দির / সাব' এর
Andreas Krey

9

@ গিলিস যেমন বলেছে, যেহেতু duএটির মুখোমুখি হওয়া একই ইনোডের দিকে ইঙ্গিত করে সমস্ত হার্ডলিঙ্কগুলির মধ্যে প্রথমটি গণনা করা হয়েছে, আপনি এটির পর পর ডিরেক্টরিতে পারেন:

$ du -hc --max-depth=0 dirA dirB
29G /hourly.1
 1G /hourly.2
30G total

অর্থাত্ 'আওয়ারলি .২' এর যে কোনও ফাইলই ইনোড (ওরফে "আসল" ফাইল) রেফারেন্সিং ইতিমধ্যে 'ঘন্টালি .১' এ উল্লেখ করা হয়েছে, গণনা করা হবে না।


2
Du --help অনুসারে , বিকল্প --max-গভীরতা = 0 -s এর সমতুল্য , সুতরাং উপরোক্ত হিসাবে সংক্ষিপ্ত করা যেতে পারে:$ du -hcs dirA dirB
উকভেল

2

খুবই সাধারণ

du -hc --max-depth=1 path/

উদাহরণ

9.4G    daily/users/rockspa/home/daily.21
3.6G    daily/users/rockspa/home/daily.30
4.2G    daily/users/rockspa/home/daily.11
1.1G    daily/users/rockspa/home/daily.4
4.2G    daily/users/rockspa/home/daily.9
3.0G    daily/users/rockspa/home/daily.25
3.5G    daily/users/rockspa/home/daily.20
4.2G    daily/users/rockspa/home/daily.13
913M    daily/users/rockspa/home/daily.5
2.8G    daily/users/rockspa/home/daily.26
1.4G    daily/users/rockspa/home/daily.1
2.6G    daily/users/rockspa/home/daily.28
4.2G    daily/users/rockspa/home/daily.15
3.8G    daily/users/rockspa/home/daily.19
327M    daily/users/rockspa/home/daily.8
4.2G    daily/users/rockspa/home/daily.17
3.1G    daily/users/rockspa/home/daily.23
...

ধন্যবাদ আবদেল এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
টাইবেরিয়াসকির্ক

অসাধারণ. এটি আমার ম্যাকোস 10.15 এ প্রথম চেষ্টা করে আমার জন্য কাজ করেছে। ধন্যবাদ.
দিমিতার্ভ

1

আশ্চর্যজনকভাবে ব্যস্তবক্সের বিল্ডসগুলি সমর্থন findছাড়াই আসে -printf। এখানে @ গ্রেবনেকের উত্তরে পরিবর্তন রয়েছে :

find . -type f -links 1 -exec ls -l {} \;| awk '{s=s+$5} END {print s}'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.