Linux Tail Command: What It is and How to Use It

Linux Tail Command: What It is and How to Use It

Tail in Linux is a command-line utility that displays the last part of file content. You can also combine it with one or more Linux commands to produce standard output.

The basic functionality of the tail command makes monitoring log files and real-time updates of one or more files easier. Its usage will expand if combined with other commands ‒ including, but not limited to, sorting and deleting files based on specific criteria.

Download Complete Linux Commands Cheat Sheet

This article will cover how the tail command works and its real-life applications through practical examples. You will also learn how to use it with other commands for better file management.

A Linux tail command prints the last ten lines of specified files.

Understanding Tail Command Syntax

The Linux tail command is part of the GNU Coreutils that adheres to the UNIX philosophy. Its primary purpose is to display the last part of a file via standard input. Users can customize the number of lines displayed by specifying the number in the syntax.

Here is what a basic tail command looks like:

tail [file_name]

This command can take several options, each serving different purposes. The following are some of the most popular command options along with their functions:

  • -c (–bytes) ‒ outputs the last number of bytes of data.
  • -n (–lines) ‒ limits the number of lines shown.
  • -f (–follow) ‒ monitor files for changes.
  • -v (–verbose) ‒ prints the file name before the data.
  • -q (–quiet, –silent) ‒ omits the file name before printing the data.
  • -version ‒ displays the tail version information.

Important! Keep in mind that the Linux command syntax is case-sensitive.

How to Use Tail Command in Linux

Now that you know how the Linux tail command works, we’re going to explore its usage with several command options and their real-life applications.

Specifying the Number of Lines for Tail Command

As mentioned above, the tail command will show the last ten lines of a file by default. To display a specified number of lines, you need to pair it with the -n option.

tail -n [number_of_lines] [file_name]

Here’s an example of how to use the lines command option to output the last two lines of a file:

tail -n 2 mynote.txt
Command line showing the last two lines of a file

Pro Tip

Replacing the “-n [number_of_lines]” part with “-[number_of_lines]” will display the same result.

Specifying the Number of Bytes

Using the -c option allows you to display the last number of bytes of the specified file. It’s helpful in targeting regular-sized files containing the ASCII character set, where one character is equal to one byte.

tail -c [number_of_bytes] [file_name]

The following example outputs the last 50 bytes of the mynote.txt file:

tail -c 50 mynote.txt
Command line showing the last 50 bytes of a text file

Sorting With Tail Command

There are various combinations of commands with the tail command for sorting data depending on your needs.

For instance, pairing it with the list (ls) command and -t and -l options allows you to list files or directories with the oldest modification times. Use the -n option to specify the number of lines to be displayed.

ls -tl | tail -n [number_of_lines]
Command line showing files and directories

Matching the tail command with the sort command and the -M option will sort the output from the ls command based on the month of creation in ascending order.

ls -tl | sort -M | tail -n [number_of_lines]
command line sorting the output in ascending order

To sort the output in reverse order, use the tail command with the -r option.

tail -n [number_of_lines] [file_name] | sort -r

Monitoring a File for Changes

The tail -f option lets you view the last ten lines of the file. This option is useful for tracking log files in real-time as this command will update when new data is added to the same file.

If the original file changes, the header will display which lines were altered.

tail -f [file_name]
Command line showing lines that were altered

Using Tail Command for Multiple Files

The previous example has shown how to use the tail command for a single file. If you want to output data from multiple files at the same time, list all the file names in the command line as follows:

tail [option] [file_name_1] [file_name_2] [file_name_3]

When executing a tail command, the header line will display each file name. This action applies when viewing multiple files. Use the -q option to enable the quiet mode, omitting this header.

tail -q [file_name]
Command line showing the quiet mode, omitting the header

How to Use the Head Command Along with Tail

Like the tail command, the Linux head command is also a member of the GNU core utilities package and writes the result in standard output. The only difference is that the head command prints the first lines of one or multiple files.

Combining head and tail commands allows you to output a specific section from a file. First, use the head command to extract the first lines from a file. Then pipe the data as input to the tail command, which displays the last lines from that particular section.

The following example shows how to use head and tail commands simultaneously to display the last ten lines of the first 20 lines from the mynote.txt text file:

head -n 20 mynote.txt | tail -10

To extract a section starting from a specified line number, add a negative sign to the -n value. Here’s how to output lines starting from the fifth line:

head -n -5 mynote.txt | tail -10

Conclusion

The Linux tail command is a useful command-line utility that improves file management. Tail prints the last lines of file content from single or multiple text files, which is useful for monitoring log files and updates of files and directories.

You have learned how the tail command works and the different ways to use it. We have provided combinations of syntaxes and examples where it works with other Linux commands for various purposes.

We hope this article has helped you understand the use of the Linux tail command for file management on UNIX-based operating systems better. Good luck.

FAQ

How Do You Grep Tail Command?

Using grep with the tail command requires turning on the line buffering mode. Doing so allows the process to resume the search for matching patterns while reducing delay.

The following syntax extracts the last ten lines of a file while turning on grep’s line buffering mode:

tail -f [file_name] | grep --line-buffered [pattern]

How Do I Get Out of Tail Command in Linux?

You might have run the tail command and want to navigate to other folders. To stop the process and restore the terminal window, press Ctrl+C.

This key combination sends a termination signal (SIGINT) to the process, interrupting the ongoing process before terminating it.

While the SIGKILL termination signal also works in this scenario, we advise against using it. SIGKILL sends a signal that cannot be ignored or blocked to immediately terminate a process. SIGINT handles the process more gracefully, allowing the system to end it in proper order.

Was this tutorial helpful?

Author
The author

Jordana Alexandrea

Jordana is a Digital Content Writer at Hostinger. With her Information System and website development knowledge, she aims to help aspiring developers and enterpreneurs build their technical skills. During her free time, she travels and dabbles in freestyle writing.