Linux Command: tail (output last part of files)

Use the “tail” command to get the last lines of a file.

$ tail bigboxcode.txt
16
17
17
18
18
19
19
20

last line
Bash

Read Specific Number of Lines

$ tail -3 bigboxcode.txt
20

last line
Bash

Read File and Get Updates

Get the update of content change continuously, by following it. Use “-f” option to get the content update/changes from file.

$ tail -f bigboxcode.txt
16
17
17
18
18
19
19
20

last line
Bash

“-f” is for follow. Use CTRL + C to end the output.

This command will keep running and will keep showing the changes, when there is any change in the file.

This is useful when we want to check any log files.

Read Specific Number of Bytes

$ tail -c 5 bigboxcode.txt
line
Bash

Read Multiple Files

$ tail  bigboxcode.txt bigboxcode2.txt
==> bigboxcode.txt <==
16
17
17
18
18
19
19
20

last line

==> bigboxcode2.txt <==
abc
def
ghi
jkl
Bash

Read File by Name Pattern

$ tail bigboxcode*
==> bigboxcode.txt <==
16
17
17
18
18
19
19
20

last line

==> bigboxcode2.txt <==
abc
def
ghi
jkl
Bash

Command Info

$ tail --help
Usage: tail [OPTION]... [FILE]...
Print the last 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.

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

Mandatory arguments to long options are mandatory for short options too.
  -c, --bytes=[+]NUM       output the last NUM bytes; or use -c +NUM to
                             output starting with byte NUM of each file
  -f, --follow[={name|descriptor}]
                           output appended data as the file grows;
                             an absent option argument means 'descriptor'
  -F                       same as --follow=name --retry
  -n, --lines=[+]NUM       output the last NUM lines, instead of the last 10;
                             or use -n +NUM to output starting with line NUM
      --max-unchanged-stats=N
                           with --follow=name, reopen a FILE which has not
                             changed size after N (default 5) iterations
                             to see if it has been unlinked or renamed
                             (this is the usual case of rotated log files);
                             with inotify, this option is rarely useful
      --pid=PID            with -f, terminate after process ID, PID dies
  -q, --quiet, --silent    never output headers giving file names
      --retry              keep trying to open a file if it is inaccessible
  -s, --sleep-interval=N   with -f, sleep for approximately N seconds
                             (default 1.0) between iterations;
                             with inotify and --pid=P, check process P at
                             least once every N seconds
  -v, --verbose            always output headers giving file names
  -z, --zero-terminated    line delimiter is NUL, not newline
      --help     display this help and exit
      --version  output version information and exit

NUM may have a multiplier suffix:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

With --follow (-f), tail defaults to following the file descriptor, which
means that even if a tail'ed file is renamed, tail will continue to track
its end.  This default behavior is not desirable when you really want to
track the actual name of the file, not the file descriptor (e.g., log
rotation).  Use --follow=name in that case.  That causes tail to track the
named file in a way that accommodates renaming, removal and creation.
Bash

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.