Linux下快速选定当前目录的最新文件
场景描述
在某些场景下,会有一个目录下有很多名字前缀一样,后边有很多文件名类似的情况。
例如:
一个存储日志的路径下可能会是这样的(有简化):
1 | $ ll |
有很多前缀一致的文件,尾部以时间戳区分,这些文件名只是最后两位不一样。
假设我们想查看最新的一个文件log_20151216103511.txt
的内容,如果直接用:cat log_
+ TAB
,系统会帮我们补为:
1 | $ cat log_201512161035 |
最后两位需要自己补全。
解决办法
这里,提供一种方法,对这一步骤进行简化。
##效果
输入lastfile
命令,即可显示最新文件的文件名:
1 | $lastfile log_ |
配合cat
,查看文件:
1 | $cat `lastfile log_` |
实现方法
1.编写shell脚本文件lastfile
:
1 | ls -t | grep "$1" | head -n 1 |
2.将lastfile
添加可执行权限,并放入系统path(例如/usr/local/bin
).
脚本解析
ls -t | grep "$1" | head -n 1
分一下三个步骤:
ls -t
:
按时间排序,最新的文件在第一个。grep "$1"
:
过滤输入的字符串,例如本例中为log_
.如果不输入的话,默认为空,表示所有文件。head -n 1
:
返回所有符合规则的文件中的第一条(即最新)。