The head
command filters a stream so that only the beginning of the stream is passed to
stdout. This is often used to get a quick summary of the contents of a file, or to target
specific lines by index in a pipeline.
The call signature is:
head {options} {path}
If path is specified, that file will be read and streamed to stdin. If path is omitted or
set to -
, then this command will operate on the stream that is piped or redirected to
stdin.
The most common option is -n
(or the --lines
long option), which defines the index of
the line after which content is filtered. By default the index is 10.
To demonstrate, let's work with our numbers.txt file, which contains a simple list of numbers from one through twelve:
Although this file contains 12 lines of text, only lines up to the 10th line are passed to stdout,
Now lets change the index to 3:
The head
command also allows the index to be negative, so that lines can be filtered relative to
the end of the file. For example, to pass all lines except for the last 5 lines the index can be
set to -5
: