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
BashRead Specific Number of Lines
$ tail -3 bigboxcode.txt
20
last line
BashRead 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
BashRead 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
BashRead File by Name Pattern
$ tail bigboxcode*
==> bigboxcode.txt <==
16
17
17
18
18
19
19
20
last line
==> bigboxcode2.txt <==
abc
def
ghi
jkl
BashCommand 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