නාමාවලියක ප්රමාණය දැන ගන්නේ කෙසේද? උප බහලුම් සහ ගොනු ඇතුළුව.
නාමාවලියක ප්රමාණය දැන ගන්නේ කෙසේද? උප බහලුම් සහ ගොනු ඇතුළුව.
Answers:
du -s directory_name
හෝ මිනිසාට කියවිය හැකි ප්රතිදානය ලබා ගැනීම සඳහා:
du -sh directory_name
මෙම -s
එය, එක් එක් උප බහලුම සඳහා ප්රමාණය පමණක් මුළු ප්රමාණය ලැයිස්තුගත නොවන බව විකල්පය මාධ්යයක්.
du
පෙරනිමි ඒකකය POSIX ට අනුව බයිට් 512 ක් වන අතර ලිනක්ස් මත කිලෝබයිට් (පරිසර විචල්යය POSIXLY_CORRECT
සකසා නොමැති නම් ) හෝ සමඟ du -k
.
du -sh bag
.
GNU විකල්පයක් du
ගනී -b
.
බලන්න man
පිටුව හා info
පිටුවේ වැඩි උදව් සඳහා:
-b
,--bytes
සමාන වේ--apparent-size --block-size=1
du -csh
-c විශාල එකතුවක් නිෂ්පාදනය කරයි
-c
සමඟ එකට භාවිතා කිරීමට තේරුමක් නැත -s
අයිතිය? -s
නිශ්චිත නාමාවලියෙහි ප්රමාණය පමණක් පෙන්වයි, එනම් නාමාවලියේ මුළු ප්රමාණයයි.
උත්සාහ කරන්න
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
මෙය විශාල ඩිරෙක්ටරි සොයා ගැනීමට උපකාරී වේ du -sh ./*
ඔබට වේක් පුස්තකාලයෙන් "file-size.sh" භාවිතා කළ හැකිය :
ls -ARgo "$@" | awk '{q += $3} END {print q}'
du -hd1
සියලු නාමාවලිවල ප්රමාණයන් මිනිස් කියවිය හැකි ආකෘතියෙන් ලැයිස්තුගත කරනු ඇත, උදා
656K ./rubberband
2.2M ./lame
652K ./pkg-config
ඔබට ls -ldh ද භාවිතා කළ හැකිය:
ls -ldh /etc
drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-l දිගු ලැයිස්තුගත කිරීම සඳහා ය; -d යනු dir තොරතුරු ප්රදර්ශනය කිරීම සඳහා මිස dir හි අන්තර්ගතය නොවේ, -h යනු හූමා කියවිය හැකි ආකෘතියෙන් ප්රමාණය පෙන්වීම සඳහා ය.
මම සෑම විටම "ncdu" පැකේජය ස්ථාපනය කර සියලුම නාමාවලිවල ප්රතිදානය චිත්රක නිරූපණයෙන් දකිමි. මෙයට හේතුව, එක් ඩිරෙක්ටරියක් කොපමණ ප්රමාණයක් එකතු කළත්, මගේ යන්ත්රවල වැඩිපුරම තැටි අවකාශය ගන්නේ කුමක් දැයි දැන ගැනීමට මට අවශ්ය නිසාය.
භාවිතය: sudo ncdu /
(ඔබට sudo
කියවීමේ අවසරය ඇති ෆෝල්ඩර අවශ්ය නොවේ ).
සමස්ත ගොනු පද්ධතියේ තැටි භාවිත සංඛ්යාලේඛන පරිලෝකනය කිරීමට යම් කාලයක් ගතවනු ඇත. එය කදිම විධාන රේඛා චිත්රක නිරූපණයක් ඇති අතර ස්කෑන් කරන ලද මාර්ගයේ ගැඹුරට හෝ ඉහළට යෑම වැනි ඊතල යතුරු භාවිතා කරමින් යතුරුපුවරු සංචාලනය ඇතුළත් වේ. එබීමෙන් ඔබට අයිතම මකා දැමිය හැකිය D.
දැනටමත් හොඳම පිළිතුර ලබා දී ඇති බැවින් මම පහත විධානය සමඟ උත්සාහ කළෙමි
sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
ප්රතිදානය
sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
679445
මුල් ප්රශ්නය ප්රමාණය විමසූ නමුත් එය තැටියේ ප්රමාණයද නැතිනම් සත්ය දත්ත ප්රමාණයද යන්න සඳහන් කර නැත.
'ඩු' ගණනය කිරීම එකම ගොනු පද්ධතියක් භාවිතා කරමින් එකම ප්රමාණයේ කොටස් ඇති සේවාදායකයන් අතර වෙනස් විය හැකි බව මම සොයා ගතිමි. ගොනු පද්ධති ලක්ෂණ වෙනස් නම් මෙය අර්ථවත් කරයි, නමුත් එසේ නොවන්නේ මන්දැයි මට සිතාගත නොහැක. ස්ටීවන් පෙන් විසින් ලබා දුන් 'ls | awk' පිළිතුර වඩාත් ස්ථාවර පිළිතුරක් ලබා දුන්නද, තවමත් විශාල ගොනු ලැයිස්තු සමඟ නොගැලපෙන ප්රති results ල ලබා දුන්නේය.
එක් සේවාදායකයක් එක්ස්එෆ්එස් භාවිතා කරන විටත්, තවත් සේවාදායකයක් EXT4 භාවිතා කරන විටත්, 'සොයා ගැනීම' භාවිතා කිරීම ලිපිගොනු 300,000+ සඳහා ස්ථාවර ප්රති results ල ලබා දී ඇත. එබැවින් ඔබට සියළුම ලිපිගොනු වල දත්ත බයිට් දැන ගැනීමට අවශ්ය නම් එය ලබා ගැනීමට මෙය හොඳ ක්රමයක් බව මම යෝජනා කරමි:
find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'