打印目录中最近访问的文件的名称,/var/run/log/
其名称的形式为access-<DDD>.log
(此处正好表示 3 位数字;因此文件名由后跟 3 位数字<DDD>
组成,然后是access-
.log
答案1
使用zsh
外壳:
setopt EXTENDED_GLOB
print /var/run/log/access-[[:digit:]](#c3).log(.oa[1])
在这里,[[:digit:]](#c3)
将精确匹配三位数字字符。之后,该字符串.log
必须出现在名称中。中的点(.oa[1])
限定了通配模式,以便仅匹配常规文件并按oa
降序对它们进行排序atime
。仅返回[1]
第一个匹配的名称(最近访问的名称)。该print
实用程序将打印生成的路径名。
更改print
为basename
仅输出文件名,不输出路径。
如果这是一项家庭作业并且您应该编写一个bash
脚本:
#!/bin/bash
zsh -o extended_glob -c 'print /var/run/log/access-[[:digit:]](#c3).log(.oa[1])'
答案2
尝试这个:
ls -tu | grep -e '^access-[0-9]\{3\}\.log$' | awk '{print $NF}'