licensecheck - Man Page

simple license checker for source files


Version v3.2.14


    licensecheck [ --help | --version ]

    licensecheck [ --list-licenses | --list-naming-schemes ]

    licensecheck [OPTION...] PATH [PATH...]


licensecheck attempts to determine the license that applies to each file passed to it, by searching the start of the file for text belonging to various licenses.

If any of the arguments passed are directories, licensecheck will add the files contained within to the list of files to process.

When multiple PATHs are provided, only files matching --check and not --ignore are checked.


Resolving patterns


Since v3.2.

comma-separated priority list of license naming schemes to use for license identifiers (default value: unset (use verbose description))


Since v3.2.

list identifiers for all detectable licenses and exit


Since v3.2.

list all available license naming schemes and exit

Selecting files

-c REGEX, --check=REGEX

Since v2.10.10.

regular expression of files to include when more than one PATH is provided (default value: common source files)

-i REGEX, --ignore=REGEX

Since v2.10.10.

regular expression of files to skip when more than one PATH is provided (default value: some backup and VCS files)

-r,  --recursive

Since v2.10.7.

traverse directories recursively

Parsing contents

-l N, --lines=N

Since v2.10.3.

number of lines to parse from top of each file; implies optimistic search including only first cluster of detected copyrights or licenses; set to 0 to parse the whole file (and ignore --tail) (default value: 60)


Since v2.15.10.

number of bytes to parse from bottom of each file; set to 0 to avoid parsing from end of file (default value: 5000 (roughly 60 lines))

-e CODEC, --encoding=CODEC

Since v2.15.10.

try decode source files from the specified codec, with iso-8859-1 as fallback (default value: unset (no decoding))

Reporting results


Since v2.10.3.

add header of each file to license information


Since v2.10.7.

add copyright statements to license information

-s,  --skipped

Since v2.15.10.

print to STDERR files in PATHs matching neither --check nor --ignore

-m,  --machine

Since v2.12.2.

print license information as TAB-separated fields, for processing with line-oriented tools like awk and sort (NB! --verbose will kill readability)


Since v3.0.0.

print license information like a Debian copyright file; implies --copyright and --shortname-scheme=debian,spdx


Since v3.0.18.

printf-string used between multiple plain list items in Debian copyright file (default value: '\n ' (NEWLINE SPACE))


Since v3.0.18.

printf-string used between multiple RFC822-style items in Debian copyright file (default value: '\n  ' (NEWLINE SPACE SPACE))


Since v3.0.19.

printf-string used between years and owners in Debian copyright file (default value: ', ' (COMMA SPACE))


Since v3.0.0.

merge same-licensed files in Debian copyright file


-h,  --help

print help message and exit

-v,  --version

print version and copyright information and exit



If defined, will disable color. Consulted before COLOR.


Can be set to 0 to explicitly disable colors. The default is to use color when connected to a terminal.


Used to emit varying details about discoveries to STDERR. See Log::Any::Adapter::Screen for more details.


The default formatter groks these variables. See formatter in Log::Any::Adapter::Screen for more details.


The exact output may change between releases, due to the inherently fragile scanning of unstructured data, and the ongoing improvements to detection patterns. For some level of stability, use one of the machine-readable output formats and define a --shortname-scheme.

Option --deb-fmt was deprecated since v3.2. Please use option --shortname-scheme=debian,spdx instead.

See Also

Other similar tools exist.

Here is a list of known tools also command-line based and general-purpose:

copyright-update <>

Written in Perl.

debmake <>

Written in Python.

Specific to Debian packages.

decopy <>

Written in Python.

Licensee <>

Written in Ruby.

LicenseFinder <>

Written in Ruby.

ninka <>

Written in C++.

Used in FOSSology <> (along with Monk and Nomos apparently unavailable as standalone command-line tools).

ripper <>

Written in Go.

scancode-toolkit <>

Written in Python.


Jonas Smedegaard <>


2021-11-23 perl v5.34.0 User Contributed Perl Documentation