tail - macOS
Overview
tail displays the last part of one or more files. It’s commonly used to view the end of a file (e.g., log files) or follow file updates in real-time.
Syntax
tail [options] [file1 [file2 ...]]
Options/Flags
- -f, –follow: Continuously monitor files for changes and display new lines as they are added.
- -n, –lines=NUM: Outputs the last NUM lines of each file. Default is 10.
- -q, –quiet: Suppresses headers showing file names when multiple files are being displayed.
- -v, –verbose: Includes file names in headers when multiple files are being displayed.
- –help: Displays help information and exits.
Examples
-
Show the last 10 lines of a log file:
tail /var/log/system.log
-
Follow a log file for real-time updates:
tail -f /var/log/apache2/access.log
-
Display the last 20 lines of a file called
myfile.txt
:tail -n 20 myfile.txt
-
View the end of multiple files without file name headers:
tail -q file1 file2 file3
Common Issues
- Ensure files have the necessary permissions to be read.
- Avoid using pipes (
|
) before tail as it can interfere with real-time monitoring. - If tail -f stops displaying output, the file may have been truncated or deleted.
Integration
-
Use tail with grep to filter output based on a pattern:
tail -f /var/log/system.log | grep "error"
-
Combine tail with jq (JSON parser) to extract specific fields from JSON logs:
tail -f /var/log/nginx/access.log | jq '.remote_addr'
Related Commands
- head: Displays the beginning of files
- cat: Concatenates and displays files
- less: A more versatile command for viewing and navigating files
- logrotate: Manages and rotates log files