ෆෝල්ඩරයේ සහ උප ෆෝල්ඩරවල ගොනු ගණන සොයා ගන්න?


159

ෆෝල්ඩරයක් යටතේ ඇති ගොනු ගණන සහ එහි සියලුම උප ෆෝල්ඩරවල මුළු ගණන සොයා ගැනීමට මට අවශ්‍යය.

Answers:


247

වැනි දෙයක් විය හැකිය

find . -type f | wc -l

උපක්‍රමය කරයි. මව් ෆෝල්ඩරයෙන් විධානය උත්සාහ කරන්න.

find . -name <pattern> -type fසියළුම f iles .සහ උප ෆෝල්ඩර සොයා ගනී . ප්‍රති result ලය (සොයාගත් ලිපිගොනු ලැයිස්තුවක්) සම්මත කර ඇත ( |) ඒ සඳහා l ines wc -lගණන ගණනය කෙරේ . සමහර ගොනු සඳහා පමණක් සොයයි.-name <pattern>


3
නව රේඛාවක් අඩංගු ලිපිගොනු වල විසඳුම අසාර්ථක වනු ඇත.
පරිශීලකයා නොදන්නා

2
@user නොදන්නා:find . -type f -ls | wc -l
සංවිධානය

2
තවත් වේගයෙන්:find . -type f -print0 | tr -d -c '\0' | wc -c
සංවිධානය

13
ran අරන්ජ්: ඊටත් වඩා වේගවත්: find . -type f -printf . | wc -c- මගේ -එක්සෙක් දෝංකාරය වෙනුවට මගේ විසඳුම සඳහා මුද්‍රණය භාවිතා කරමි.
පරිශීලක නොදන්නා

1
මෙම විධානය මගේ නඩුවේ චමත්කාරයක් මෙන් ක්‍රියා කළේය, එය මැජික් මෙන් පෙනේ
pcko1

27

treeවිධානය භාවිතා කරන්න . ඔබට treeපැකේජය ස්ථාපනය කිරීමට අවශ්‍ය විය හැකිය .

එය ලබා දී ඇති ෆෝල්ඩරය යටතේ ඇති සියලුම ගොනු සහ ෆෝල්ඩර ලැයිස්තුගත කර අවසානයේ සාරාංශයක් ලැයිස්තුගත කරනු ඇත.


17

වත්මන් නාමාවලියෙහි මුලදී ගොනු (දිගුවක් නොමැතිව ගොනු පවා) ගණන් කිරීමට, භාවිතා කරන්න:

ls -l | grep ^- | wc -l

වත්මන් නාමාවලියෙහි මුල සිට පුනරාවර්තන ලෙස ගොනු (දිගුවක් නොමැති ගොනු පවා) ගණනය කිරීමට , භාවිතා කරන්න:

ls -lR | grep ^- | wc -l

2
ඒවා සැඟවුණු ගොනු ගණන් නොගනී.
පරිශීලකයා නොදන්නා

සැබෑ. ඔබේ පිළිතුර විසඳුම ලෙස පිළිගැනීමට සහ භාවිතා කිරීමට මම වැඩි කැමැත්තක් දක්වමි.
user38537

සැඟවුණු ලිපිගොනු තුළ සැඟවුණු ලිපිගොනු / ලිපිගොනු ගණනය නොකිරීම ප්‍රයෝජනවත් ලක්ෂණයකි .
lfurini

13

වේගවත්ම හා පහසුම ක්‍රමය නම් භාවිතා කිරීමයි tree. එහි වේගය ඔබගේ ප්‍රතිදාන පර්යන්තය මඟින් සීමා කර ඇත, එබැවින් ඔබ ප්‍රති result ලය නල කළහොත් ඔබට tail -1ක්ෂණික ප්‍රති .ල ලැබෙනු ඇත. -Lවිකල්පය භාවිතා කරමින් ප්‍රති results ල වලට ඔබ කැමති කුමන නාමාවලි මට්ටමටද ඔබට පාලනය කළ හැකිය. වර්ණ ගැන්වූ ප්‍රතිදානය සඳහා, භාවිතා කරන්න -C. උදාහරණයක් වශයෙන්:

$ tree share/some/directory/ | tail -1
558 directories, 853 files

$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files

එය දැනටමත් නොමැති නම්, ඔබට එය මෙතැනින් ලබා ගත හැකිය .


10
find -type f -printf . | wc -c

සොයාගැනීමේ ප්‍රතිදාන රේඛා ගණන් නොගන්න, මන්ද නව රේඛා 99 ක් අඩංගු ගොනු නාම ගොනු 100 ක් ලෙස ගණන් ගනු ඇත.


4
නව රේඛා අඩංගු ගොනු නාමයන් ඇදහිය නොහැකි තරම් දුර්ලභ අවස්ථාවකි.
අපකීර්තිමත් ගෝට්

8
Is ඩිස්ග්‍රන්ට්ගොට්: එබැවින් දෝෂයක් සොයා ගැනීම අතිශයින් දුෂ්කර වනු ඇත.
පරිශීලකයා නොදන්නා

මම අවුරුදු ගණනාවකට පසු හොඳ අද්දර නඩුවකට කැමතියි.
user38537

4

මාර්ගයෙහි ඇති සෑම ෆෝල්ඩරයක් සඳහාම මෙම විධානය භාවිතා කරන්න

for D in *; do echo $D; find $D -type f| wc -l; done

1

ඔයාට පාවිච්චි කරන්න පුළුවන් find . | wc -l

find .ඔබගේ වර්තමාන ෆෝල්ඩරයෙන් ආරම්භ වන සියලුම ලිපිගොනු සහ ෆෝල්ඩර සහ තීර් අන්තර්ගතයන් ලැයිස්තුගත කරනු ඇත.
wc -lසොයා ගැනීමේ ප්‍රති results ල ගණනය කරයි


මෙම විසඳුම ෆෝල්ඩර ද ගණන් කරයි, මම ඒවා ගණන් කිරීමට අකමැති මගේ අවස්ථාවට ගැලපෙන ලකුණු ලබා දුන්නෙමි :)
ටොප්ලස්

නව රේඛාවක් අඩංගු ලිපිගොනු වල විසඳුම අසාර්ථක වනු ඇත.
පරිශීලකයා නොදන්නා

1

සොයා ගැනීම ගසට වඩා ඉක්මන් බව පෙනේ, එබැවින් වත්මන් වැඩ කරන නාමාවලියෙහි එක් එක් නාමාවලියෙහි ගොනු ගණනය කිරීමට මම පහත භාවිතා කළෙමි (සීඩබ්ලිව්ඩී හි ගොනු නොසලකා හැරීම) නාමාවලි වලට ඉඩ ලබා ගැනීමට ඉඩ දීම සමඟ:

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done


නිමැවුම් මාණකරනය ක්රියාත්මක lsවන ඉතා නරක අදහසක්.
souravc

නියම කේතය, වැඩිවන හෝ අඩුවන ලිපිගොනු ගණනක ප්‍රතිදාන රේඛා සකසන්නේ කෙසේද
රාත්‍රී ක්‍රෝලර්

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.