---
name: "tac"
section: "1"
platform: "linux"
package: "coreutils"
version: "9.12-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/tac"
---

# tac(1)

concatenate and print files in reverse

## NAME

tac - concatenate and print files in reverse

## SYNOPSIS

**tac** \[*OPTION*\]... \[*FILE*\]...

## DESCRIPTION

Write each FILE to standard output, last line first.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.

- **-b, --before**

  attach the 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

- **--help**

  display this help and exit

- **--version**

  output version information and exit

Non-seekable input is buffered to $TMPDIR, defaulting to */tmp*.

## AUTHOR

Written by Jay Lepreau and David MacKenzie.

## REPORTING BUGS

Report bugs to: \<bug-coreutils@gnu.org\>.\
 Report any translation bugs to: \<https://translationproject.org/team/\>.\
 GNU coreutils home page: \<https://www.gnu.org/software/coreutils/\>\
 General help using GNU software: \<https://www.gnu.org/gethelp/\>

## COPYRIGHT

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later \<https://gnu.org/licenses/gpl.html\>.\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

## SEE ALSO

[**cat**(1)](/cat/1.md), [**rev**(1)](/rev/1.md)

Full documentation \<https://www.gnu.org/software/coreutils/tac\>\
 or available locally via: info '(coreutils) tac invocation'
