tac – Concatenates Multiple Files and Reverse Prints Line by Line to Stdout

The tac command is a Linux utility that is used to concatenate multiple files and reverse the order of lines in each file. The command reads each file in reverse order and prints the content of the file line by line to the standard output.


The basic syntax of the tac command is as follows:

tac [OPTION]... [FILE]...

Where FILE is the name of the file(s) to be concatenated and reversed. If no file is specified, then the standard input is used. The tac command is often used in combination with other commands such as find, grep, and awk.


Here are some examples of how to use the tac command:

  • To concatenate and reverse the content of a single file, run the following command:
    tac file.txt
  • To concatenate and reverse the content of multiple files, run the following command:
    tac file1.txt file2.txt file3.txt
  • To concatenate and reverse the output of a command, use a pipe (|) to send the output of the command to tac. For example, to reverse the output of the ls command, run the following command:
    ls -l | tac
  • To concatenate and reverse the content of all files in a directory and its subdirectories, use the find command to locate the files and pipe the output to tac. For example, to reverse the content of all .log files in the /var/log directory and its subdirectories, run the following command:
    find /var/log -name "*.log" -type f -exec tac {} \;

Specific Use Cases

The tac command is useful in the following scenarios:

  • Debugging log files: When debugging an application, it is often useful to examine the log files. By using the tac command, you can examine the most recent log entries first.
  • Reverse searching: When searching for a specific pattern in a file, it is often useful to start at the end of the file and work backwards. The tac command can be used in combination with the grep command to achieve this.


The tac command provides the following options that can be used to modify its behavior:

Option Description
-b, --before Attach separator before instead of after.
-r, --regex Interpret the separator as a regular expression.
-s, --separator=STRING Use STRING as the separator instead of newline.

Troubleshooting Tips

Here are some common issues that you may encounter when using the tac command, along with their solutions:

  • The output is not reversed: If the output is not reversed, it may be because the input files are empty or contain only a single line. In this case, the tac command will simply print the input as it is.
  • The output is garbled: If the output is garbled, it may be because the input files contain non-printable characters. In this case, you can use the cat command to print the input files and examine them for non-printable characters.
  • The separator is not working: If the separator is not working, it may be because it contains special characters that are interpreted by the shell. In this case, you can enclose the separator in quotes or escape the special characters.


  • The tac command is the reverse of the cat command. If you want to concatenate files in their original order, use the cat command instead.
  • The tac command is not available on all Linux distributions. If it is not available on your system, you can install it using your package manager.