我有一个自动生成并在目录中组织的日志文件:
我想创建一个shell别名,打印出最新日志文件的尾部(laravel-2015-07-05.log)。
alias plog="tail ___________________________"
我可以在空白处填写什么来选择最新的日志文件?
每天生成一个新的日志文件,日期字符串模式应该很明显。生成文件的服务器时区与我的本地时区不同,因此我寻找的解决方案将找到具有最新日期的日志文件(不一定只是今天的日期)。 / p>
答案 0 :(得分:2)
Zsh为此拥有“全球限定词”。在man zshexpn
中查找该部分。不需要管道,ls,xargs等。
tail logs/*(.om[1])
这就是寻找:
*
所有.
个文件o
下令升序m
[1]
并且只接受最新的然后您的别名变为:
alias plog='tail logs/*(.om[1])'
或者,如果您更喜欢反过来考虑它(将最后一个视为最新版本,例如tail -1
),请使用O
(以反转顺序)和[-1]
(最后一个) :
tail logs/*(.Om[-1])
答案 1 :(得分:1)
假设这些是此目录中的唯一文件,并遵循严格的命名格式
laravel-yyyy-mm-dd
然后可以运行(在日志目录中)
查看上次日志尾
ls | tail -n 1 | xargs tail
这使用ls的默认字母排序顺序
如果要运行外部目录,可以调整此项:
ls -d logs/* | tail -n 1 | xargs tail