cloc – Count Lines of Code in Many Programming Languages

While working on different projects, sometimes you might be required to provide a report or statistics of your progress, or simply to calculate the value of your code.

There is this simple yet powerful tool called “cloc – count lines of code” that allows you to count all number of your code and exclude comments and blank lines at the same time.

It is available in all major Linux distributions and supports multiple programming languages and file extensions and does not have any specific requirements to be used.

In this tutorial you are going to learn how to install and use cloc on your Linux system.

How to Install and Use Cloc in Linux Systems

Installing cloc is easy and simple. Below you can see how to install cloc in different operating systems with their related package managers:

$ sudo apt install cloc                  # Debian, Ubuntu
$ sudo yum install cloc                  # Red Hat, Fedora
$ sudo dnf install cloc                  # Fedora 22 or later
$ sudo pacman -S cloc                    # Arch
$ sudo emerge -av dev-util/cloc          # Gentoo
$ sudo apk add cloc                      # Alpine Linux
$ sudo pkg install cloc                  # FreeBSD
$ sudo port install cloc                 # Mac OS X with MacPorts
$ brew install cloc                      # Mac OS X with Homebrew
$ npm install -g cloc                    #

Cloc can be used to count lines in particular file or in multiple files within directory. To use cloc simply type cloc followed by the file or directory which you wish to examine.

Here is an example from a file in bash. The file in question contains the following code in bash:

$ cat
Linux Bash Script

Linux Bash Script

Now lets run cloc on it.

$ cloc
Count Lines in File

Count Lines in File

As you can see it counted the number of files, blank lines, comments and lines of code.

Another cool feature of cloc is that can even be used on compressed files. For example, I have downloaded the latest WordPress archive and ran cloc on it.

$ cloc latest.tar.gz

Here is the result:

Count Lines on Compressed File

Count Lines on Compressed File

You can see that it recognizes the different types of code and separates the stats per language.

In case you need to get a report for multiple files in a directory you can use “--by-file” option, that will count the lines in each file and provide a report for them. This may take a while for projects with many files and thousands of lines of code.

The syntax is as follows:

$ cloc --by-file <directory>
Count Lines on Multiple Files

Count Lines on Multiple Files

While the help of cloc is easily readable and understandable, I will include some of the extra options that can be used with cloc some users may find useful.

  • --diff <set1> <set2> – computes the differences in code between the source files of set1 and set2. The input can be a mix of files and directories.
  • --git – forces the inputs to be recognized as git targets if the same are not first identified as file or directory names.
  • --ignore-whitespace – ignores the horizontal whitespace when comparing files with --diff.
  • --max-file-size=<MB> – if you want to skip files larger than the given amount MB.
  • --exclude-dir=<dir1>,<dir2> – exclude given comma separated directories.
  • --exclude-ext=<ext1>,<ext2> – exclude the given file extensions.
  • --csv – export results to CSV file format.
  • --csv-delimiter=<C> – use the character <C> as the delimiter.
  • --out=<file> – save the results to <file>.
  • --quiet – suppress all information messages and show only the final report.
  • --sql=<file> – write the results as create and insert statements that can be read by a database program such as SQLite.

Cloc is a little useful utility that is definitely good to have in your arsenal. While it may not be used on a daily basis, it can help you when you have to generate some report or if you are just curious how is your project going.

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Marin Todorov

I am a bachelor in computer science and a Linux Foundation Certified System Administrator. Currently working as a Senior Technical support in the hosting industry. In my free time I like testing new software and inline skating.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

1 Response

  1. piso20 says:

    So interesting article, I am a bank`s specialist system area, and we are searching for a tool to improve our numbers.


Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.