আমি কীভাবে মানব পাঠযোগ্য আকারগুলি সংখ্যা অনুসারে বাছাই করব?


20

উদাহরণস্বরূপ আমার কাছে কমান্ড রয়েছে যা স্পেস ফোল্ডারটি গ্রহণ করে তা দেখায়

du folder | sort -n

এটি দুর্দান্ত কাজ করে তবে আমি মানব পাঠযোগ্য ফর্মটি রাখতে চাই

du -h folder

তবে আমি যদি এটির চেয়ে বেশি করি তবে আমি এটি সংখ্যা হিসাবে বাছাই করতে পারি না।

কীভাবে যোগদান করবেন du folderএবং du -h folderআউটপুটটি সাজানো কীভাবে দেখুন du folderতবে প্রথম কলাম থেকেইdu -h folder

পিএস এটি একটি উদাহরণ। এই কৌশলটি আমার পক্ষে খুব কার্যকর হতে পারে (যদি এটি সম্ভব হয়)

উত্তর:


11

এখানে একটি আরও সাধারণ পদ্ধতির। আউটপুট পান du folderএবং du -h folderদুটি ভিন্ন ফাইলের মধ্যে।

du folder > file1
du -h folder > file2

মূল অংশটি হ'ল: যথাযথ ডিলিমিটার সহ একত্রিত করে file1এবং file2রেখার দ্বারা লাইন।

paste -d '#' file1 file2 > file3

(ধরে নিচ্ছি এবং এতে #উপস্থিত হবে না )file1file2

এখন বাছাই করুন file3। নোট করুন যে এটি file1সামগ্রীর উপর ভিত্তি করে সাজানো হবে এবং file2বিষয়বস্তু দ্বারা সম্পর্ক ছিন্ন করবে । ব্যবহার করে প্রাসঙ্গিক ফলাফলটি বের করুন cut:

sort -n -k1,7 file3 | cut -d '#' -f 2

man sortঅন্যান্য বিকল্পগুলির জন্য একবার দেখুন ।


পরে এটিকে আবার ব্যবহারের জন্য আপনি এটি একটি উপাধ হিসাবে সংরক্ষণ করতে পারেন। এটি করতে নীচের নীচে নিম্নলিখিতটি যুক্ত করুন ~/.bashrc:

sorted-du () {
    paste -d '#' <( du "$1" ) <( du -h "$1" ) | sort -n -k1,7 | cut -d '#' -f 2
}

তারপরে, একটি নতুন টার্মিনাল সেশনটি খুলুন এবং আপনার নতুন উপন্যাসটি কার্যকর করুন:

sorted-du /home

আমি কীভাবে আপনার সমাধানটিকে একটি উপাধিতে পরিণত করতে পারি তার শেষ অংশটি যুক্ত করেছি।
স্যারচার্লো

1
একটি উরফে আসল ফাইলগুলি ব্যবহার করা (এবং তারপরে তাদের কাছে আরএম কল করা) সত্যিই খারাপ ধারণা ! file3আমার ডিরেক্টরিতে যদি আসলে একটি ফাইলের নাম লেখা হয় তবে কী হবে তা চিন্তা করুন ! @ সিরচার্লো আমি এই উত্তরটি থেকে ওরফে সংজ্ঞাটি সরিয়ে দিচ্ছি এবং এটিকে আরও নিরাপদ কিছু দিয়ে প্রতিস্থাপন করছি।
jmiserez

আচ্ছা Askubuntu.com/a/80248/22308 কেবল এটির মাধ্যমে করুনsort -h
নাম জি

36

এর মতো কিছু চেষ্টা করুন:

du -h folder | sort -h

বিকল্প: সংখ্যা -nবাছাইয়ের জন্য

দ্রষ্টব্য: -hসাজানোর বিকল্পটি কেবল উবুন্টুর নতুন সংস্করণগুলিতে বিদ্যমান in


3
সংস্করণ 8.17 রয়েছে, সুতরাং আমার ধারণা এটি সহজতম উপায়
স্টিবার্ট

1
সাজানোর কমান্ডটি সাজানো --version = 8.17 থেকে উন্নত করা হয়েছে উল্লেখ করে স্টিবার্টকে ধন্যবাদ উবুন্টুর নতুন সংস্করণগুলির জন্য এটি সেরা উত্তর।
ক্যাট আমস্টারডাম

এটি হ'ল এটি গ্রহণযোগ্য কারণ হ'ল এটি পরিষ্কার-শুট যা ওপিকে সমাধান করেsort -h
নাম জি ভিইউ

4

এই উত্তরটির জন্য বৈধ 10.04.4LTS এবং উবুন্টুর নিম্ন সংস্করণের ।

দুর্ভাগ্যজনকভাবে সঠিক উত্তর যা কেএমজি প্রকারিত করে তা কঠিন এবং জটিল:

এটি ব্যবহার করে মানব পাঠযোগ্য বাছাই করে এমন একটির সাথে আপনি পুরো du কমান্ডটি উপস্থাপন করতে পারেন

alias duf='du -sk * | sort -n | perl -ne '\''($s,$f)=split(m{\t});for (qw(K M G)) {if($s<1024) {printf("%.1f",$s);print "$_\t$f"; last};$s=$s/1024}'\'

যা আমি এখানে পেয়েছি

http://www.earthinfo.org/linux-disk-usage-sorted-by-size-and-human-readable/

সবেমাত্র ফোল্ডারে সিডি করুন আপনি ডুফ জানতে চাইবেন

আপনি এই ডুফ ওরফে আপনার / home/user/. প্রোফাইলের শেষে যুক্ত করতে পারেন ডুফ কমান্ডকে অর্ধ-বীর্যকর করতে

ফলাফল:

user@hostname:~$ duf
0.0K  Documenten
0.0K  Muziek
0.0K  Openbaar
0.0K  Sjablonen
0.0K  Video's
4.0K  backup_db.sql.g
4.0K  examples.desktop
12.0K xml printer ticket
52.0K hardinfo_report.html
152.0K    librxtxSerial.so
2.7M  jpos
4.4M  nxclient_3.5.0-7_amd64.deb
6.4M  nxnode_3.5.0-4_amd64.deb
6.8M  Downloads
7.4M  nxserver_3.5.0-5_amd64.deb
12.4M NetBeansProjects
18.1M mysqlworkbench.deb
28.3M Afbeeldingen
45.8M ergens-20110928-18.sql.gz
60.5M 2012-06-02ergens_archive.tar.gz
65.5M 2012-08-26ergens_archive.tar.gz
65.6M 2012-08-28ergens_archive.tar.gz
65.6M 2012-08-29ergens_archive.tar.gz
65.7M 2012-08-30ergens_archive.tar.gz
113.0M    Bureaublad
306.2M    ergens-20110928-18.sql

এখানে কেন du -sch /var/* | sort -nএমকেকেএমএমকেএমকেএমকে বাছাই করে কাজ করা হয় না

user@hostname:~$ du -sch /var/* |sort -n

0 /var/crash
0 /var/local
0 /var/lock
0 /var/opt
8,0M  /var/backups
12K   /var/games
16K   /var/tmp
17M   /var/log
68M   /var/cache
104K  /var/spool
144K  /var/run
351M  /var/lib
443M  totaal
704K  /var/mail

আমি সুনির্দিষ্ট বৈশিষ্ট্য সহ ডু-হ ফাংশনটি উন্নত করার জন্য একটি বৈশিষ্ট্য অনুরোধ সহ এটি জিনু-কোর বিকাশকারীদের কাছে জানিয়েছি। বাগ-coreutils@gnu.org এর মাধ্যমে
ক্যাট আমস্টারডাম

+1, অনুরূপ ওয়ান-লাইনার:du folder | sort -n | cut -f 2 | while IFS= read -r -d '' path; do du -sh -- "$path"; done
স্টিবার্ট

একটি লাইভ সিস্টেমে সবেমাত্র আপনার 1 লাইনার ব্যবহার করে দেখুন। কোনও অ্যাক্সেস অস্বীকৃত ত্রুটি পান এবং কোনও ফলাফলই পান না। আপনি কি প্রথমে কোনও উবুন্টু সিস্টেমে এই আদেশটি ব্যবহার করে দেখেছেন? আমি ফোল্ডারটি / হোম / ইউজারনেমে পরিবর্তন করেছি
ক্যাট আমস্টারডাম

ওহ, দুঃখিত, -d ''ফাইল কমান্ডের আউটপুটে এটি ব্যবহার করা থেকে আপনার একটি ড্রপ ফেলে দেওয়া উচিত ।
স্টিবার্ট

এটি জিএনইউ সমর্থন করে না এমন নন-লিনাক্স সিস্টেমগুলিতে দুর্দান্ত কাজ করবে বলে মনে হচ্ছে sort
স্টিফান লাসিউইস্কি

2

কমান্ড জিএনইউতে sortনিম্নলিখিত বিকল্প রয়েছে:

-h, --human-numeric-sort মানব পাঠযোগ্য সংখ্যাগুলির তুলনা করুন (যেমন, 2 কে 1 জি)।

উপর বাসদ / ওএসএক্স এই অপশনটি আছে করার জন্য, আপনাকে ইনস্টল করতে পারেন sortথেকে coreutils(মাধ্যমে brew) এবং আপনার বিন ফোল্ডারটিকে যোগ PATHআপনার মধ্যে RC ফাইল।

সুতরাং কমান্ডটি দেখতে চাইবে:

du -ah . | sort -rh | head -20

0

উবুন্টুর সাম্প্রতিক সংস্করণগুলির জন্য, ব্যবহার করুন du -h directory | sort -h

নিয়ন্ত্রণের ফাইলগুলি খুঁজে বের করার জন্য আমি এই ফর্মটি সর্বদা ব্যবহার করি।


17:13 Allu2 এ প্রশ্নের যে জবাব 17 ই নভেম্বর '11 এর সদৃশ
এল্ডার গিক

0

আপনার টার্মিনালটি Ctrl+ Alt+ দিয়ে tটাইপ করুন:

  du -sk * | sort -rn 

: ডিআই এখন সিআরটিএল + অল্ট + টি এত উপরে উপরের ফর্ম্যাটে পরিবর্তন করতে অভ্যস্ত যাতে আমি আমার এক্সপ্যাডে প্রয়োজনীয় ফর্ম্যাটটি আটকে দিয়েছি। : ডি এরকম
মেনাল

আপনি এখানে প্রতিটি কাজ পরিপূরক মূল্য।
rʒɑdʒɑ

0

এটি একটি সাদা নাম বা অ্যাডোস্ট্রোফ সহ ফাইলের নামগুলি পরিচালনা করে এবং এমন সিস্টেমে কাজ করে যা সমর্থন করে না xargs -dবা sort -h:

du -s * | sort -n | cut -f2 | tr '\n' '\0' | xargs -0 -I {} du -sh "{}"

যার ফলাফল:

368K    diskmanagementd
392K    racoon
468K    coreaudiod
472K    securityd
660K    sshd
3.6M    php-fpm

প্রতিস্থাপন করে লাভ কী হলো \nসঙ্গে \0? তার জন্য কি একটু বেশি দেরি হচ্ছে না?
مورু

এটি এর জন্য ইনপুট প্রস্তুত করে xargs -0, যা প্রত্যাশা করে যে ইনপুটটি NUL সীমাবদ্ধ থাকবে (যেমন সন্ধান করুন-প্রিন্ট0 উত্পাদন করবে)। অন্যথায় আপনি -0 ব্যবহার করতে পারবেন না, এবং অ্যাস্টোস্ট্রফসের বিশেষ অর্থ রয়েছে।
মার্ক ক্রসফিল্ড

আমি জানি -0, কিন্তু এটা অপ্রাসঙ্গিক আছে: imgur.com/87w3vfj
muru

আমি মনে করি এটি কাজ করছে যেমন আপনি একটি অ্যাডাস্ট্রোফ নয়, ব্যাকটিক ব্যবহার করেছেন। gist.github.com/mrmanc/8aef830945ce03aa65f0
মার্ক ক্রসফিল্ড

0

সংস্করণ নির্বিশেষে আমি যে সমস্ত সিস্টেমে কাজ করতে দেখেছি তা ( sort -hআমার পক্ষে কাজ করে না) is

du -h $(du * | sort -n | awk '{print $2}')

awk '{print $2}'মূলত ফাইলের নাম ছাপে।

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