- 浏览: 304074 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
syw19901001:
从入门到精通,不错。http://www.ihref.com/ ...
使用git进行版本控制 -
轻指飞扬:
...
一场程序员和老板的对话 -
luogen33:
ttttttttttttttttttttttttttttttt ...
lsmod -
luogen33:
ttttttttttttttttttt
lsmod -
vaqeteart:
嗯那
得到与享受
tail [Option]... [File]...
[功能]
打印文件的最后部分。
[描述]
这个命令会打印文件的最后10行。如果指定多个文件那么会在每个文件的开始打印出相应的文件名称。
常用选项:
--retry
即使tail开始时就不能访问或者在tail运行后不能访问,也仍然不停地尝试打开文件. 只与-f合用时有用.
-c, --bytes=N
输出最后N个字节
-f, --follow[={name|descriptor}]
当文件增长时,输出后续添加的数据; -f, --follow以及 --follow=descriptor 都是相同的意思
使用--follow (-f)时,tail默认后接文件描述符, 这意味着即使tail显示的文件改名了,tail仍然可以追踪到其末尾部分. 如果你确实希望查询文件的实际名而非文件描述符 (例如,日志轮转时), 这种默认的操作就不是你所期望的了. 在这种情况下应使用--follow=name. 这将导致tail通过周期性地重新打开所指定的文件来追踪其是否被删除了,或者被其他程序重新创建了.
-n, --lines=N
输出最后N行,而非默认的最后10行
--pid=PID
与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent
从不输出给出文件名的首部
-s, --sleep-interval=S
与-f合用,表示在每次反复的间隔休眠S秒
-v, --verbose
总是输出给出文件名的首部
--help
显示帮助信息后退出
--version
输出版本信息后退出
如果N(字节或者行数)的第一个字符为`+', 那么从每个文件的开头算起的第N项开始显示, 否则, 显示该文件的最后N项. N可以有一个倍数前缀: b表示512,k表示1024,m表示1048576(1兆).
[举例]
测试的文件内容如下:
[quietheart@lv-k tail_test]$ cat tail_test
1 04_libraryTest
2 a.out
3 a.out.symbol
4 autotools
5 core.31058
6 cpp_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
*显示文件的最后10行:
[quietheart@lv-k tail_test]$ tail tail_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这样,会显示文件myfile的最后10行。
*显示文件的最后N行:
[quietheart@lv-k tail_test]$ tail -n 5 tail_test
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这样,会显示文件myfile的最后5行。
*从第5行开始显示文件:
[quietheart@lv-k tail_test]$ tail -n +5 tail_test
5 core.31058
6 cpp_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这里,注意指定的数字前面有'+'代表从这个数字相应的位置开始,显示后面的内容。
*显示文件最后38个字节的内容:
[quietheart@lv-k tail_test]$ tail -c 38 tail_test
ynctest
15 tail_
16 tail_test
这里,使用-c指定显示的单位是字节计算。
*显示文件第38个字节开始之后的内容:
[quietheart@lv-k tail_test]$ tail -c +38 tail_test
3 a.out.symbol
4 autotools
5 core.31058
6 cpp_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这里,注意指定的数字前面有'+'代表从这个数字相应的位置开始,显示后面的内容。
*跟踪(以文件描述符号方式)文件的增长:
[quietheart@lv-k tail_test]$tail -f tail_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这里,输入之后,显示默认的文件的后10行,但是tail并没有因此而结束,而是一直在运行着,保持这那个文件对应的索引节点的打开状态。接下来,如果通过"echo new >>tail_test"向文件追加内容,那么会看到tail又继续将追加的内容打印出来。如果使用"echo new>tail_test"那么tail会输出类似"tail: tail_test: file truncated"的字样来告诉文件内容被truncated了。这个命令用户跟踪动态增长的文件,例如系统日志。需要注意的是,默认来说tail就根据它自己的文件描述符号来跟踪文件,有时就向前面所说的,有的程序追加文件内容的时候会将文件删除然后新建立一个,例如有些日志程序会在一定的时候将追加的日志文件重命名,然后再建立一个之前同名的新日志文件追加新的内容,这样的话这个命令就不好用了。例如有些编辑器例如vim进行修改文件的时候,无法跟踪其变化。通过"ls -il"对vim编辑之前的文件和之后的文件的inode号对比发现,两者不同,应当是编辑的时候先删除文件的索引节点再新建立一个,新建的节点内容才包含了最新的内容,而之前tail打开的那个索引节点已经被删除了,看不见了,所以当然不会发生变化,如果想要确定那么就先用"ps -aux |grep tail"找到tail的进程号,进入/proc目录的tail进程号目录中,查看其fd文件中的某个描述符号,例如"cat 3"这样会发现原来的内容。
*跟踪文件增长(以文件名方式):
[quietheart@lv-k tail_test]$ tail --follow=name log
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这样,tail根据文件名称跟踪文件的变化,默认来说tail就根据它自己的文件描述符号来跟踪文件,就像前面所说的,有的程序追加文件内容的时候会将文件删除然后新建立一个,例如有些日志程序会在一定的时候将追加的日志文件重命名,然后再建立一个之前同名的新日志文件追加新的内容,那么默认的方式就无法跟踪到文件的变化了,因为文件描述符号是代表一个索引节点的,而新追加的内容可能追加到新的索引节点上面了,这个时候就使用这个选项。这样,如果当文件新追加内容是追加到同一名称的不同索引节点的情况发生时,那么tail那里就会提示 "tail: “tail_test” has been replaced; following end of new file"之后再重新显示追加之后的新的最后10行。
[其它]
更多的信息参见"info tail"。
[功能]
打印文件的最后部分。
[描述]
这个命令会打印文件的最后10行。如果指定多个文件那么会在每个文件的开始打印出相应的文件名称。
常用选项:
--retry
即使tail开始时就不能访问或者在tail运行后不能访问,也仍然不停地尝试打开文件. 只与-f合用时有用.
-c, --bytes=N
输出最后N个字节
-f, --follow[={name|descriptor}]
当文件增长时,输出后续添加的数据; -f, --follow以及 --follow=descriptor 都是相同的意思
使用--follow (-f)时,tail默认后接文件描述符, 这意味着即使tail显示的文件改名了,tail仍然可以追踪到其末尾部分. 如果你确实希望查询文件的实际名而非文件描述符 (例如,日志轮转时), 这种默认的操作就不是你所期望的了. 在这种情况下应使用--follow=name. 这将导致tail通过周期性地重新打开所指定的文件来追踪其是否被删除了,或者被其他程序重新创建了.
-n, --lines=N
输出最后N行,而非默认的最后10行
--pid=PID
与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent
从不输出给出文件名的首部
-s, --sleep-interval=S
与-f合用,表示在每次反复的间隔休眠S秒
-v, --verbose
总是输出给出文件名的首部
--help
显示帮助信息后退出
--version
输出版本信息后退出
如果N(字节或者行数)的第一个字符为`+', 那么从每个文件的开头算起的第N项开始显示, 否则, 显示该文件的最后N项. N可以有一个倍数前缀: b表示512,k表示1024,m表示1048576(1兆).
[举例]
测试的文件内容如下:
[quietheart@lv-k tail_test]$ cat tail_test
1 04_libraryTest
2 a.out
3 a.out.symbol
4 autotools
5 core.31058
6 cpp_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
*显示文件的最后10行:
[quietheart@lv-k tail_test]$ tail tail_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这样,会显示文件myfile的最后10行。
*显示文件的最后N行:
[quietheart@lv-k tail_test]$ tail -n 5 tail_test
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这样,会显示文件myfile的最后5行。
*从第5行开始显示文件:
[quietheart@lv-k tail_test]$ tail -n +5 tail_test
5 core.31058
6 cpp_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这里,注意指定的数字前面有'+'代表从这个数字相应的位置开始,显示后面的内容。
*显示文件最后38个字节的内容:
[quietheart@lv-k tail_test]$ tail -c 38 tail_test
ynctest
15 tail_
16 tail_test
这里,使用-c指定显示的单位是字节计算。
*显示文件第38个字节开始之后的内容:
[quietheart@lv-k tail_test]$ tail -c +38 tail_test
3 a.out.symbol
4 autotools
5 core.31058
6 cpp_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这里,注意指定的数字前面有'+'代表从这个数字相应的位置开始,显示后面的内容。
*跟踪(以文件描述符号方式)文件的增长:
[quietheart@lv-k tail_test]$tail -f tail_test
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这里,输入之后,显示默认的文件的后10行,但是tail并没有因此而结束,而是一直在运行着,保持这那个文件对应的索引节点的打开状态。接下来,如果通过"echo new >>tail_test"向文件追加内容,那么会看到tail又继续将追加的内容打印出来。如果使用"echo new>tail_test"那么tail会输出类似"tail: tail_test: file truncated"的字样来告诉文件内容被truncated了。这个命令用户跟踪动态增长的文件,例如系统日志。需要注意的是,默认来说tail就根据它自己的文件描述符号来跟踪文件,有时就向前面所说的,有的程序追加文件内容的时候会将文件删除然后新建立一个,例如有些日志程序会在一定的时候将追加的日志文件重命名,然后再建立一个之前同名的新日志文件追加新的内容,这样的话这个命令就不好用了。例如有些编辑器例如vim进行修改文件的时候,无法跟踪其变化。通过"ls -il"对vim编辑之前的文件和之后的文件的inode号对比发现,两者不同,应当是编辑的时候先删除文件的索引节点再新建立一个,新建的节点内容才包含了最新的内容,而之前tail打开的那个索引节点已经被删除了,看不见了,所以当然不会发生变化,如果想要确定那么就先用"ps -aux |grep tail"找到tail的进程号,进入/proc目录的tail进程号目录中,查看其fd文件中的某个描述符号,例如"cat 3"这样会发现原来的内容。
*跟踪文件增长(以文件名方式):
[quietheart@lv-k tail_test]$ tail --follow=name log
7 download_blog
8 gpg_test
9 hello-1.0.tar.gz
10 hello-2.0
11 hello-2.0.tgz
12 main.cpp
13 mysql20110512.sql
14 rsynctest
15 tail_
16 tail_test
这样,tail根据文件名称跟踪文件的变化,默认来说tail就根据它自己的文件描述符号来跟踪文件,就像前面所说的,有的程序追加文件内容的时候会将文件删除然后新建立一个,例如有些日志程序会在一定的时候将追加的日志文件重命名,然后再建立一个之前同名的新日志文件追加新的内容,那么默认的方式就无法跟踪到文件的变化了,因为文件描述符号是代表一个索引节点的,而新追加的内容可能追加到新的索引节点上面了,这个时候就使用这个选项。这样,如果当文件新追加内容是追加到同一名称的不同索引节点的情况发生时,那么tail那里就会提示 "tail: “tail_test” has been replaced; following end of new file"之后再重新显示追加之后的新的最后10行。
[其它]
更多的信息参见"info tail"。
发表评论
-
split
2012-01-06 20:05 1091split [OPTION] [INPUT [PREFIX]] ... -
objcopy
2011-07-21 14:04 5491objcopy [选项]... 输入文件 [输出文件] [功 ... -
insmod
2011-07-13 17:29 1357insmod [filename] [module opti ... -
objdump
2011-07-13 17:26 3089objdump [选项] objfile... [ ... -
tty
2011-07-13 10:55 1345tty [选项]... [功能] 打印连接到标准输入的终端的 ... -
readelf
2011-07-08 16:31 2536readelf <option(s)> elf-f ... -
date
2011-07-06 17:12 1016date [OPTION]... [+FORMAT] date ... -
head
2011-07-01 11:41 921head [OPTION]... [FILE]... [功能] ... -
ls
2011-06-30 14:00 1193ls [OPTION]... [FILE]... [功能] 列 ... -
ifconfig
2011-06-28 18:19 1420ifconfig 功能:配置网络 [举例] *查看网络配置信 ... -
iconv
2011-06-28 18:14 1152iconv -f encoding [-t encoding] ... -
gpg
2011-06-28 17:43 2074gpg [功能] GPG是加密和数字签名的免费工具,大多用于加 ... -
logsave
2011-06-20 18:19 1124logsave [ -asv ] logfile cmd_pr ... -
umask
2011-06-10 11:41 1373umask [功能] 通过设置一些位来禁止一些权限。有一些通用 ... -
rsync
2011-04-27 16:20 1164rsync rsync [OPTION]... SRC DES ... -
lsof
2011-03-24 09:44 1572lsof [options] filename [功能] 列出 ... -
mountpoint
2011-02-12 15:17 1067mountpoint [-q] [-d] /path/to/d ... -
lsmod
2011-02-12 15:12 1734lsmod [功能] 列出内核已载入模块的状态 [描述] l ... -
depmod
2011-02-12 14:50 1874depmod [-b basedir] [-e] [-F Sy ... -
cpio
2011-02-12 14:49 1412cpio [选项] > 文件名或者设备名 cpio [选 ...
相关推荐
`tail -f` 是 Linux 和 Unix 系统中一个非常实用的命令,它允许用户实时监控文件的变化。在 Windows 系统中,由于其与 Linux 的底层机制不同,原生的命令提示符(CMD)并不支持 `tail -f` 命令。然而,通过在给定的...
在IT行业中,尤其是在系统管理和日志分析领域,`tail`命令是一个非常常用且实用的工具。它允许用户实时查看文件的末尾,特别是在监控日志文件变化时非常有用。Java作为一种广泛使用的编程语言,也可以实现类似`tail`...
在传统的DOS操作系统环境下,与Unix/Linux系统中的`tail`命令类似的功能,可以通过特定的工具实现。`tail`命令在Unix/Linux中常用于查看文件的末尾内容,特别是跟踪文件的实时更新,这对于日志监控或者调试过程非常...
在Windows平台上,Linux的`tail`工具是一个非常实用的命令行工具,用于查看文件的末尾部分,通常用于监控日志文件的变化。然而,Windows操作系统默认并不提供与`tail`功能相同的内置工具。但不用担心,我们可以找到...
在Linux系统中,有一个非常实用的命令行工具叫`tail`,它用于查看文件的末尾部分,尤其是在追踪日志文件变化时非常有用。标题提到的是在Windows环境下使用的`tail`工具的替代方案,使得Windows用户也能享受到类似的...
《深入解析File-Tail-0.99.3.tar.gz:源码包的探索与应用》 在IT领域,源码包的分析和利用对于软件开发者、系统管理员以及技术爱好者来说,是提升技能的重要环节。File-Tail-0.99.3.tar.gz是一个开源项目,它提供了...
D:\>tail/? 一成不变的方法,/?来查看使用帮助 usage: TAIL [switches] [filename]* switches: [-?] display this message [-n] display last n lines of each file (default 10) [-f filename] keep ...
在Windows操作系统中,通常我们使用的是图形化界面来管理和查看文件,但在Linux系统中,有一个非常实用的命令行工具——`tail`,它用于查看文件的末尾内容,特别是对于实时监控日志文件非常有用。在Windows环境下,...
在Windows操作系统中,通常我们习惯于使用图形化界面来管理和查看文件,但对于习惯于Linux环境的用户来说,一些命令行工具如`tail`是必不可少的。`tail`命令在Linux中用于查看文件的尾部内容,它对于实时监控日志...
《Windows操作系统下的tail工具——tail-for-windows.zip详解》 在Linux系统中,`tail`命令是一个非常实用的工具,它能够帮助用户实时监控文件的尾部内容,这对于追踪日志文件的变化尤其有用。然而,Windows操作...
tail for Windows 是 Windows 下的 tail DOS 命令(类似 UNIX/Linux 下的相同命令)。可用来显示文件尾部内容以及跟踪/监控文件内容变化。你也可以借助重定向符号(> 或 >>)从一个文件的指定行号开始截取内容生成另...
然而,为了在Windows环境下模拟Linux的`tail`命令,我们可以采取一些方法。`tail`命令在Linux中非常实用,它允许用户查看文件的末尾几行,对于实时监控日志文件尤其有用。现在,我们将详细介绍如何在Windows下实现...
**TailLog日志监控工具详解** 在IT行业中,日志监控是系统运维和开发者不可或缺的工具,它能够帮助我们实时追踪、分析应用运行状态,排查故障。本文将深入探讨一款专为macOS平台设计的日志监控工具——"TailLog"。 ...
【Tail4Win】是一款专为Windows系统设计的命令行工具,它模仿了Linux系统中的`tail`命令功能,使得在Windows环境下也能方便地查看文件的末尾内容,尤其是在日志跟踪、实时监控等方面非常实用。在Linux系统中,`tail`...
标题中的“Windows Tail”指的是在Windows操作系统环境下模拟Unix/Linux系统中的`tail`命令的一款工具。在Unix/Linux系统中,`tail`命令常用于查看文件的末尾内容,尤其是在日志监控和调试过程中非常实用。Windows ...
在IT行业中,尤其是在系统管理和日志监控领域,`tail`命令是一个非常实用的工具。它在Unix和Linux系统中广泛使用,允许用户查看文件的末尾部分,或者实时跟踪文件的增长。现在,我们讨论的主题是"tail程序在Windows...
在Linux中,`tail`命令是一个非常实用的工具,它用于查看文件的末尾部分,常用于监控日志文件的变化。然而,Windows默认并不包含这个命令。但在Windows XP SP3及更高版本中,可以通过第三方工具实现类似的功能。 ...
`tail.exe`命令在Windows操作系统中是一个非常实用的工具,它允许用户查看文本文件的末尾部分,类似于在Linux或Unix系统中的`tail`命令。这个命令尤其适用于监控日志文件的变化,因为你可以实时看到文件内容的更新而...
"Windows图形化小工具Tail" 是一款专为Windows操作系统设计的实用程序,灵感来源于Linux中的经典命令行工具"tail -f"。这个工具的主要功能是帮助用户实时监控和跟踪日志文件的变化,使得在Windows环境下进行开发和...
**Linux Tail 命令详解** `tail` 是 Linux 系统中一个非常实用的命令,它允许用户查看文件的尾部内容,尤其适用于监控日志文件的实时变化。这个命令对于系统管理员来说是日常工作中不可或缺的工具,因为它可以帮助...