DEV Community

Xun Zhou
Xun Zhou

Posted on • Edited on

Tip for evaluating file size with linux command

I wanna just know the code size of current folder and wanna share this cod snippet with u. Give a try in your src folder . You will see there are some candidates, which might be too large and need to be refactored in the future.

For example: Service/Import.php with 1185 lines, and it does definitively too much and should be refactored.

cd src
find . -name '*.php' | xargs wc -l | sort -nr

20844 total
    1791 ./Service/PageGenerator.php
    1185 ./Modules/Importer/Service/Import.php
     542 ./Entity/Base/Area.php
     447 ./Entity/PublicInfo.php
     363 ./Controller/FrontendController.php
     339 ./Modules/MyAPI/Provider/Dto/AreasDto.php
     307 ./Entity/Base/OpeningTime.php
     298 ./Entity/Opening.php
     290 ./Entity/SpecialSale.php
     289 ./Modules/Exporter/Model/ExportStoresModel.php
     258 ./Entity/User.php
     232 ./Modules/MyAPI/Provider/Dto/PublicInfoDto.php
     230 ./Repository/StoreRepositoryDBAL.php
     221 ./Repository/StoreRepository.php
     214 ./Entity/Base/TemporaryClosing.php
     205 ./Controller/OpeningController.php
     196 ./Entity/Base/Competitor.php
     178 ./Form/PublicInfoType.php
     177 ./Modules/Exporter/Api/Bing/Stores.php
     177 ./Form/OpeningType.php
     173 ./Form/SpecialSaleType.php
     166 ./Entity/Base/StatusDevelopment.php
Enter fullscreen mode Exit fullscreen mode

[UPDATED] for the users, who is using zsh, can just use this shortcut:

$ cd src
$ wc -l **/*.php | sort -nr
Enter fullscreen mode Exit fullscreen mode

Sure, there are lots of code static tools that can do the same job. But this command is just handy 💫

Top comments (2)

Collapse
 
moopet profile image
Ben Sinclair

If you're running a shell that supports it out the box (like zsh) or something you can enable it on (like bash, if you have set shopt -s globstar) you can do the same with:

wc -l **/*.php
Enter fullscreen mode Exit fullscreen mode
Collapse
 
vikbert profile image
Xun Zhou

yes, it works well with your suggestion in zsh shell

$ wc -l **/*.php | sort -nr
Enter fullscreen mode Exit fullscreen mode