Output the last part of a file. Display the last part (10 lines by default) of file or, by default, standard input, to standard output.
tail will read from standard input if no files are given

      tail [-F | -f | -r] [-q] -b Blocks [file ...]

      tail [-F | -f | -r] [-q] -c bytes [file ...]

      tail [-F | -f | -r] [-q] -n number [file ...]

   -b Blocks
       Output the last Blocks number of 512-byte blocks.

   -c bytes
       Output the last bytes bytes of each of the specified files.
       Any CR/LF line ending characters must be included in the count.

   -n number
       Output the last number of lines of each of the specified files.
       This may also be given as -number

   -f  Don't stop when end of file is reached, but rather to wait for  additional 
       data to be appended to the input.
       Ignored if the standard input is a pipe, but not if it is a FIFO.

   -F  The -F option implies the -f option, but tail will also check to
       see if the file being followed has been renamed or rotated. 
       The file is closed and reopened when tail detects that the filename
       being read from has a new inode number.
       The -F option is ignored if reading from standard input rather than a file.

   -q  Suppress printing of headers when multiple files are being examined.

   -r  Causes the input to be displayed in reverse order, by line.
       When used without the -b, -c or -n options, -r will display all of
       the input in reverse.

If more than a single file is specified, each file is preceded by a header consisting of the string ==> XXX <== where XXX is the name of the file.

The Process Control keyboard shortcuts can be used while tail is running.

The display begins at a byte, line or 512-byte block location in the input.

Numbers having a leading plus (+) sign are relative to the beginning of the input, for example, -c +2 starts the display at the second byte of the input. Numbers having a leading minus (-) sign or no explicit sign are relative to the end of the input, for example, -n 2 displays the last two lines of the input. So tail -n 5 file.txt is the same as tail -5 file.txt

The default starting location is -n 10, or the last 10 lines of the input.

The -r option changes the meaning of the -b, -c and -n options, so that these specify the number of bytes, lines or 512-byte blocks to display, instead of the bytes, lines or blocks from the beginning or end of the input from which to begin the display. In practise this returns the same set of data, just in the reverse direction.

BSD 'tail' can only reverse files that are at most as large as its buffer, which is typically 32k.

The tail utility is expected to be a superset of the IEEE Std 1003.2-1992 (POSIX.2) specification. In particular, the -F, -b and -r options are extensions to that standard.

The tail utility exits 0 on success, and >0 if an error occurs.

Common Log File locations


The /private folder is hidden for protection. To view it with Finder, select Go > Go to Folder


Extract the last 20 lines from a file:

$ tail -20 file.txt

Output the newly appended lines of a file instantly:

$ tail -f /var/log/wifi.log

Output newly appended lines, and keep trying if the file is temporarily inaccessible:

$ tail -F /var/log/wifi.log

DIsplay the last 40 lines from the system.log, continue until Ctrl-C is pressed:

$ tail -40 -f /var/log/system.log

Extract lines 40-50 from a file, first using head to get the first 50 lines then tail to get the last 10:

$ head -50 file.txt | tail -10

"Money will buy a pretty good dog, but it won't buy the wag of his tail" ~ Henry Wheeler Shaw

Related macOS commands

cat - Concatenate and print (display) the content of files.
head - Display the first lines of a file.
sed - Stream Editor.
Console.app (Applications/Utilities) - Display macOS log files.
LNav.org - Log file Navigator.

Copyright © 1999-2024 SS64.com
Some rights reserved