Answers:
වැනි දෙයක් විය හැකිය
find . -type f | wc -l
උපක්රමය කරයි. මව් ෆෝල්ඩරයෙන් විධානය උත්සාහ කරන්න.
find . -name <pattern> -type f
සියළුම f iles .
සහ උප ෆෝල්ඩර සොයා ගනී . ප්රති result ලය (සොයාගත් ලිපිගොනු ලැයිස්තුවක්) සම්මත කර ඇත ( |
) ඒ සඳහා l ines wc -l
ගණන ගණනය කෙරේ . සමහර ගොනු සඳහා පමණක් සොයයි.-name <pattern>
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- මගේ -එක්සෙක් දෝංකාරය වෙනුවට මගේ විසඳුම සඳහා මුද්රණය භාවිතා කරමි.
වත්මන් නාමාවලියෙහි මුලදී ගොනු (දිගුවක් නොමැතිව ගොනු පවා) ගණන් කිරීමට, භාවිතා කරන්න:
ls -l | grep ^- | wc -l
වත්මන් නාමාවලියෙහි මුල සිට පුනරාවර්තන ලෙස ගොනු (දිගුවක් නොමැති ගොනු පවා) ගණනය කිරීමට , භාවිතා කරන්න:
ls -lR | grep ^- | wc -l
වේගවත්ම හා පහසුම ක්රමය නම් භාවිතා කිරීමයි 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
find -type f -printf . | wc -c
සොයාගැනීමේ ප්රතිදාන රේඛා ගණන් නොගන්න, මන්ද නව රේඛා 99 ක් අඩංගු ගොනු නාම ගොනු 100 ක් ලෙස ගණන් ගනු ඇත.
මාර්ගයෙහි ඇති සෑම ෆෝල්ඩරයක් සඳහාම මෙම විධානය භාවිතා කරන්න
for D in *; do echo $D; find $D -type f| wc -l; done
ඔයාට පාවිච්චි කරන්න පුළුවන් find . | wc -l
find .
ඔබගේ වර්තමාන ෆෝල්ඩරයෙන් ආරම්භ වන සියලුම ලිපිගොනු සහ ෆෝල්ඩර සහ තීර් අන්තර්ගතයන් ලැයිස්තුගත කරනු ඇත.
wc -l
සොයා ගැනීමේ ප්රති results ල ගණනය කරයි
සොයා ගැනීම ගසට වඩා ඉක්මන් බව පෙනේ, එබැවින් වත්මන් වැඩ කරන නාමාවලියෙහි එක් එක් නාමාවලියෙහි ගොනු ගණනය කිරීමට මම පහත භාවිතා කළෙමි (සීඩබ්ලිව්ඩී හි ගොනු නොසලකා හැරීම) නාමාවලි වලට ඉඩ ලබා ගැනීමට ඉඩ දීම සමඟ:
ls -d */ | while read dir_line
do
echo -n "$dir_line :"
find "$dir_line" -type f | wc -l
done
ls
වන ඉතා නරක අදහසක්.
මම මෙම විකල්පය සමඟ තනිවම යන්නෙමි:
ls -alR | grep -c ^ -