Uাবি: কেবল গভীরতায় ফোল্ডারগুলি দেখান


12

আমি du -hনিম্নলিখিতগুলির মতো আউটপুট পাচ্ছি :

103M    ./.wine/drive_c/windows/mono/mono-2.0/lib/mono
103M    ./.wine/drive_c/windows/mono/mono-2.0/lib
129M    ./.wine/drive_c/windows/mono/mono-2.0
129M    ./.wine/drive_c/windows/mono
362M    ./.wine/drive_c/windows
545M    ./.wine/drive_c

আমি কেবল সর্বাধিক ক্রিয়াযোগ্য ফোল্ডারটি প্রদর্শন করতে চাই, এটি ফোল্ডার ./.wine/drive_c/windows/mono/mono-2.0/lib/mono

কোনও চাইল্ড ফোল্ডার যদি ডিস্কের বেশিরভাগ জায়গার ব্যবহারের জন্য দায়ী থাকে তবে পিতামাতার ফোল্ডারটি সরানোর কোনও উপায় আছে কি?

পাতাগুলি ফোল্ডারগুলির আকার গণনা করার সময় কেবল পাতার ফোল্ডারগুলি দেখানোর জন্য একটি সেটিং কৌশলটি করতে পারে বা প্যারেন্ট ফোল্ডার থেকে সমস্ত সাবফোল্ডারগুলির আকার বিয়োগ করতে পারে।


এটি প্রায়শই দৃষ্টিভঙ্গি অনুসরণ করা সহজ; দেখতে বুঝতে কি স্থান নিচ্ছে?
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

উত্তর:


12

আপনি যদি জিএনইউ ডু ব্যবহার করছেন তবে আপনি পিতামাতার জন্য ব্যবহারের গণনা করার সময় সাব-ডিরেক্টরিগুলির আকার অন্তর্ভুক্ত না করার জন্য -Sবা --separate-dirsবিকল্পটি ব্যবহার করতে পারেন ।

আপনার duকমান্ড এই বিকল্পটিকে সমর্থন করতে পারে না।

আপনি এই দম্পতিটিকে সর্বাধিক পৃথক পৃথক ডিরেক্টরিগুলি (জিএনইউ সরঞ্জামগুলি অনুমান করে) পাওয়ার জন্য সাজানোর সাথে ব্যবহার করতে পারেন:

du --separate-dirs -h . |sort -h

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

9

ব্যক্তিগতভাবে, আমি কেবল এটি GNU সাজানোর শক্তির সাথে একত্রিত করেছি:

du -ch | sort -h

এটি আকারে মানব পাঠযোগ্য বিন্যাসে বাছাইয়ের কারণ ঘটবে। উদাহরণ স্বরূপ:

$ du -h /usr/ | head -20 | sort -h
8.0K    /usr/src/linux-headers-3.2.0-3-common/include/misc
12K /usr/src/linux-headers-3.2.0-3-common/include/drm/i2c
12K /usr/src/linux-headers-3.2.0-3-common/include/net/netfilter/ipv4
16K /usr/src/linux-headers-3.2.0-3-common/include/net/netfilter/ipv6
20K /usr/src/linux-headers-3.2.0-3-common/include/net/phonet
28K /usr/src/linux-headers-3.2.0-3-common/include/acpi/platform
52K /usr/src/linux-headers-3.2.0-3-common/include/net/netns
60K /usr/lib32/libv4l
76K /usr/src/linux-headers-3.2.0-3-common/include/net/caif
96K /usr/src/linux-headers-3.2.0-3-common/include/scsi/fc
108K    /usr/src/linux-headers-3.2.0-3-common/include/net/bluetooth
112K    /usr/src/linux-headers-3.2.0-3-common/include/drm/ttm
148K    /usr/src/linux-headers-3.2.0-3-common/include/net/netfilter
264K    /usr/src/linux-headers-3.2.0-3-common/include/rdma
284K    /usr/src/linux-headers-3.2.0-3-common/include/acpi
596K    /usr/src/linux-headers-3.2.0-3-common/include/drm
608K    /usr/src/linux-headers-3.2.0-3-common/include/scsi
668K    /usr/games
6.3M    /usr/lib32/gconv
8.9M    /usr/lib32

থেকে man sort:

   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)

এটি এখনও আপনার দেখায় না এমন বিষয়গুলি দেখায় তবে আপনি যা করেন তা খুঁজে পাওয়া এখন খুব সহজ।


না, এটি প্রকৃতপক্ষে এটি আরও খারাপ করে তোলে, এখন এটি 545M ./.wine/drive_cতালিকার শীর্ষে দেখায় যদিও এটিতে কেবল ফোল্ডার এবং কোনও ফাইল নেই এবং ড্রাইভ_সি-র (পুনরাবৃত্ত) সাবফোল্ডারগুলির মধ্যে স্থান কীভাবে বন্টিত হয় তা দেখতে এটি আরও কঠিন করে তোলে কারণ তারা ডোন না তালিকায় পরপর উপস্থিত হবে না।
ইওগানম

6

আপনি যদি কেবল একটি সুস্পষ্টভাবে সাজানো দৃশ্য সন্ধান করছেন তবে আমি durepপ্যাকেজটি সুপারিশ করছি ।

উদাহরণ আউটপুট:

root@dogmeat:~# durep -td 4 -hs 50M /usr/
[ /usr     4.8G (0 files, 9 dirs) ]
   1.9G [###########                   ]  38.57% lib/
     463.6M [#######                       ]  24.46% x86_64-linux-gnu/
         102.3M [######                        ]  22.07% wine/
     276.2M [####                          ]  14.57% i386-linux-gnu/
          96.1M [##########                    ]  34.80% wine/
     222.4M [###                           ]  11.73% libreoffice/
         189.3M [#########################     ]  85.12% program/
     122.6M [#                             ]   6.47% chromium-browser/
          87.6M [#####################         ]  71.46% chromium-browser
      79.5M [#                             ]   4.19% virtualbox/
      79.4M [#                             ]   4.19% jvm/
          73.4M [###########################   ]  92.52% java-7-openjdk-amd64/
              73.4M [############################# ]  99.99% jre/
      75.7M [#                             ]   3.99% python2.7/
          58.4M [#######################       ]  77.21% dist-packages/
      58.9M [                              ]   3.11% firefox/
      52.2M [                              ]   2.75% libwireshark.so.2.0.2
   1.4G [########                      ]  29.56% src/
   1.2G [#######                       ]  26.03% share/
     211.6M [####                          ]  16.54% fonts/
         199.3M [############################  ]  94.18% truetype/
              84.2M [############                  ]  42.23% horai-umefont/
     174.6M [####                          ]  13.64% icons/
          91.5M [###############               ]  52.39% gnome/
              66.4M [#####################         ]  72.60% icon-theme.cache
      77.5M [#                             ]   6.05% gimp/
          77.5M [##############################] 100.00% 2.0/
              66.2M [#########################     ]  85.43% help/
      74.4M [#                             ]   5.82% virtualbox/
          56.9M [######################        ]  76.42% VBoxGuestAdditions.iso
      62.9M [#                             ]   4.91% doc/
 240.1M [#                             ]   4.89% bin/

ব্যবহার করুন -tdসর্বোচ্চ গভীরতা নির্দিষ্ট করার পরামিতি, এবং -hsএকটি ফোল্ডার ফলাফলে দেখা করার জন্য পরামিতি একটি সর্বনিম্ন আকার উল্লেখ করা হয়।


2

সত্যিই নিশ্চিত না এই কি আপনি চান, কিন্তু আপনি ব্যবহার গনুহ পিতা বা মাতা ডিরেক্টরি স্ট্রিপ করতে findএর -execdir:

find . -type d -execdir du -ch "{}" \;

-execdirবিকল্প অনুরূপ -execকিন্তু কমান্ড আপনাকে সাব যেখানে সরবরাহ executes findএকটি ফাইল খুঁজে পেয়েছে।


হুঁ, আপনার বর্ণনা অনুসারে এটি কাজ করবে বলে মনে হচ্ছে না। আমি এখনও আউটপুটে প্রচুর অভিভাবক ডিরেক্টরি পাচ্ছি।
ইওগানম

2

আপনি যদি duকোনও নির্দিষ্ট গভীরতা ব্যবহার করে থাকেন , উদাহরণস্বরূপ du -m -d 2 ., আপনি কেবল এমন লাইনগুলি মাস্ক করতে পারেন যা আপনার সর্বোচ্চ গভীরতায় পৌঁছায় না:

du -m -d 2 . | sort -k1n | awk -F"/" 'NF==3'

এই ক্ষেত্রে, আমি 2 ডিরেক্টরিগুলির গভীরতা চেয়েছিলাম তাই শুরুতে আমার ক্ষেত্র বিভাজক হিসাবে নির্দিষ্ট করার পরে awkকীওয়ার্ডের সাথে সংজ্ঞায়িত হিসাবে কেবলমাত্র 3 টি ক্ষেত্রের সাথে ফলাফল রেখেছি keptNF"/"


0

এই উভয়ই আমার পক্ষে কাজ করে:

 du -h | perl -ne '$n=()=$_=~m#/#g;  print unless $n > 2'
 du -h | perl -ne 'print unless ($n=()=$_=~m#/#g) > 2 '

কিছুটা কমেন্ট করে, সংখ্যার সাথে মিলে যাওয়ার জন্য ম্যাচটি একটি তালিকার প্রসঙ্গে হওয়া উচিত যা আমাদের কেন প্রয়োজন ()।
হু

du -h | perl -ne 'মুদ্রণ না করা (() = $ _ = ~ এম # / # g)> 2'
হু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.