作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有一个多个进程登录的目录,我想跟踪所选进程的最新文件。
在 ~/bashrc 我添加了以下内容
function __taillog {
tail -f $(find $1 -maxdepth 1 -type f -printf "%T@ %p\n" | sort -n | tail -n 1 | cut -d' ' -f 2-)
}
alias taillog='__taillog'
取自:https://superuser.com/questions/117596/how-to-tail-the-latest-file-in-a-directory
日志文件目录示例
-rw-r--r-- 1 genesys genesys 2284 Mar 19 16:34 gdalog.20130319_163436_906.log
-rw-r--r-- 1 genesys genesys 131072 Mar 19 16:34 gdalog.20130319_163436_906.snapshot.log
-rw-r--r-- 1 genesys genesys 10517 Mar 19 16:54 lcalog.20130319_163332_719.log
-rw-r--r-- 1 genesys genesys 131072 Mar 19 16:54 lcalog.20130319_163332_719.snapshot.log
-rw-r--r-- 1 genesys genesys 3792 Mar 19 16:37 StatServer_TLSTest.20130319_163700_703.log
-rw-r--r-- 1 genesys genesys 160562 Mar 19 16:52 StatServer_TLSTest.20130319_163712_045.log
-rw-r--r-- 1 genesys genesys 49730 Mar 19 16:54 StatServer_TLSTest.20130319_165217_402.log
-rw-r--r-- 1 genesys genesys 53960 Mar 20 09:55 StatServer_TLSTest.20130319_165423_702.log
-rw-r--r-- 1 genesys genesys 131072 Mar 20 09:56 StatServer_TLSTest.20130319_165423_702.snapshot.log
因此,要跟踪所有 StatServer,命令将是
taillog /home/user/logs/StatServer*
它会在给定的路径中跟踪该应用程序的最新文件
问题是尾部显示了一些文件输出,但在追加日志文件时不显示任何更新。如果运行以下命令,则日志正确尾部
tail -f $(find /home/user/logs/StatServer* -maxdepth 1 -type f -printf "%T@ %p\n" | sort -n | tail -n 1 | cut -d' ' -f 2-)
一些如何将此命令添加为 bash 函数然后从别名调用它会导致它无法按预期运行。
欢迎提出更好的建议。
最佳答案
我相信你应该运行这个命令:
taillog /home/user/logs
当你说 /home/user/logs/this_app*
时,你将所有匹配模式的文件作为参数传递给 taillog
并且只使用第一个参数即 $1
,命令最终转换为 tail -f $1
。
$1
应该是 find
应该在该目录级别查找文件的目录(即 /home/user/logs
你的情况),然后将结果通过管道传输到 sort
、tail
和 cut
。
关于linux - 尾部匹配所选规则的最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15491821/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!